10 Exemples pratiques de commandes Linux Cut pour sélectionner des colonnes de fichiers
La commande Linux Cut est utilisée pour le traitement de texte. Vous pouvez utiliser cette commande pour extraire une partie de texte d’un fichier en sélectionnant des colonnes.
Ce didacticiel fournit quelques exemples pratiques de commande de coupe que vous pouvez utiliser dans vos activités quotidiennes en ligne de commande.
Pour la plupart des exemples, nous utiliserons le fichier de test suivant.
$ cat test.txtcat command for file oriented operations.cp command for copy files or directories.ls command to list out files and directories with its attributes.
Sélectionner une colonne de caractères
Pour extraire uniquement la colonne souhaitée d’un fichier, utilisez l’option -c. L’exemple suivant affiche le deuxième caractère de chaque ligne d’un fichier test.txt
$ cut -c2 test.txtaps
Comme vu ci-dessus, les caractères a, p, s sont le deuxième caractère de chaque ligne du fichier test.txt.
Sélectionnez une colonne de caractères à l’aide de la plage
La plage de caractères peut également être extraite d’un fichier en spécifiant les positions de début et de fin délimitées par -. L’exemple suivant extrait les 3 premiers caractères de chaque ligne d’un fichier appelé test.txt
$ cut -c1-3 test.txtcatcpls
Sélectionnez une colonne de caractères en utilisant la position de début ou de fin
La position de départ ou la position de fin peuvent être transmises à la commande de coupe avec l’option -c.
Ce qui suit ne spécifie que la position de départ avant le ‘-‘. Cet exemple extrait du 3ème caractère à la fin de chaque ligne du fichier test.txt.
$ cut -c3- test.txtt command for file oriented operations. command for copy files or directories. command to list out files and directories with its attributes.
Ce qui suit spécifie uniquement la position de fin après le «-». Cet exemple extrait 8 caractères du début de chaque ligne du fichier test.txt.
$ cut -c-8 test.txtcat commcp commals comma
La ligne entière serait imprimée si vous ne spécifiez pas de nombre avant ou après le ‘-‘ comme indiqué ci-dessous.
$ cut -c- test.txtcat command for file oriented operations.cp command for copy files or directories.ls command to list out files and directories with its attributes.
Sélectionnez un champ spécifique dans un fichier
Au lieu de sélectionner x nombre de caractères, si vous souhaitez extraire un champ entier, vous pouvez combiner les options -f et -d. L’option -f spécifie le champ à extraire, et l’option -d spécifie quel est le délimiteur de champ utilisé dans le fichier d’entrée.
L’exemple suivant affiche uniquement le premier champ de chaque ligne de / etc / passwd en utilisant le délimiteur de champ: (deux-points). Dans ce cas, le 1er champ est le nom d’utilisateur. Le fichier
$ cut -d":" -f1 /etc/passwdrootdaemonbinsyssyncgamesbala
Sélection de plusieurs champs dans un fichier
Vous pouvez également extraire plusieurs champs d’un fichier ou d’une sortie standard. L’exemple ci-dessous affiche le nom d’utilisateur et le répertoire personnel des utilisateurs qui ont le shell de connexion comme « / bin / bash ».
$ grep "/bin/bash" /etc/passwd | cut -d":" -f1,6root:/rootbala:/home/bala
Pour afficher la plage de champs, spécifiez le champ de début et terminer le champ comme indiqué ci-dessous. Dans cet exemple, nous sélectionnons les champs 1 à 4, 6 et 7
$ grep "/bin/bash" /etc/passwd | cut -d":" -f1-4,6,7root:x:0:0:/root:/bin/bashbala:x:1000:1000:/home/bala:/bin/bash
Sélectionner les champs uniquement lorsqu’une ligne contient le délimiteur
Dans notre exemple / etc / passwd, si vous passez un autre délimiteur autre que: (deux-points), cut affichera simplement la ligne entière.
Dans l’exemple suivant, nous ‘ J’ai spécifié le délimiteur comme | (pipe), et la commande cut affiche simplement la ligne entière, même si elle ne trouve aucune ligne ayant | (pipe) comme délimiteur.
$ grep "/bin/bash" /etc/passwd | cut -d"|" -f1root:x:0:0:root:/root:/bin/bashbala:x:1000:1000:bala,,,:/home/bala:/bin/bash
Mais, il est possible de filtrer et d’afficher uniquement les lignes contenant le délimiteur spécifié à l’aide de l’option -s.
L’exemple suivant n’affiche aucune sortie, comme la commande cut ne l’a pas fait ‘ne trouve aucune ligne qui a | (pipe) comme délimiteur dans le fichier / etc / passwd.
$ grep "/bin/bash" /etc/passwd | cut -d"|" -s -f1
Sélectionner tous les champs sauf les champs spécifiés
Afin de compléter la liste des champs de sélection, utilisez l’option –complement.
L’exemple suivant s’affiche tous les champs du fichier / etc / passwd sauf le champ 7
$ grep "/bin/bash" /etc/passwd | cut -d":" --complement -s -f7root:x:0:0:root:/rootbala:x:1000:1000:bala,,,:/home/bala
Changer le délimiteur de sortie pour l’affichage
Par défaut, le délimiteur de sortie est le même comme délimiteur d’entrée que nous spécifions dans l’option cut -d.
Pour changer le délimiteur de sortie, utilisez l’option –output-delimiter comme indiqué ci-dessous. Dans cet exemple, le délimiteur d’entrée est: (deux-points), mais le délimiteur de sortie est # (hachage).
$ grep "/bin/bash" /etc/passwd | cut -d":" -s -f1,6,7 --output-delimiter="#"root#/root#/bin/bashbala#/home/bala#/bin/bash
Remplacez le délimiteur de sortie par Newline
Dans cet exemple, chaque champ de la sortie de la commande de coupe est affiché sur une ligne distincte. Nous avons toujours utilisé –output-delimiter, mais la valeur est $ ‘\ n’, ce qui indique que nous devrions ajouter une nouvelle ligne comme délimiteur de sortie.
$ grep bala /etc/passwd | cut -d":" -f1,6,7 --output-delimiter=$"\n"bala/home/bala/bin/bash
Combine Couper avec une autre sortie de commande Unix
La puissance de la commande cut peut être réalisée lorsque vous la combinez avec la sortie standard d’une autre commande Unix.
Une fois que vous maîtrisez l’utilisation de base de la commande cut que nous avons expliqué ci-dessus, vous pouvez utiliser judicieusement la commande cut pour résoudre beaucoup de vos besoins de manipulation de texte.
L’exemple suivant indique comment vous pouvez extraire uniquement les informations utiles de la sortie de la commande ps. Nous avons également montré comment nous avons filtré la sortie de la commande ps en utilisant grep et sed avant que la sortie finale ne soit donnée à la commande cut.Ici, nous avons utilisé les options de coupe -d et -f que nous avons expliquées dans les exemples ci-dessus.
Si cet article vous a plu, vous aimerez peut-être aussi ..
|
|