Commande cut
La commande cut permet de filtrer (supprimer) une partie de chacune des lignes d’un fichier.
Utilisations de cut
La commande cut attend en paramètre un ou plusieurs fichiers; si plusieurs fichiers sont fournis alors ces derniers seront concaténés.
1 | $ cut option fichier1 fichier2 ... |
Si aucun fichier n’est fourni, cut utilisera l’entrée standard comme ci-dessous (cut prend le premier caractère de chaque ligne saisi) :
1 2 3 4 5 | [romain@arch_machine nom_repertoire]$ cut -c 1 commande c Linux L |
Afficher le premier caractère de chaque ligne avec cut
Ci-dessous, nous utilisons la commande cut avec l’option -c pour afficher uniquement le premier caractère de chaque ligne d’un fichier texte.
1 2 3 4 5 6 | [romain@arch_machine ~]$ cut -c 1 voitures.txt R P S H T |
Afficher certaines colonnes de caractères
Dans l’exemple ci-dessous, nous utilisons l’option -c et la liste de caractères 2-5 pour demander à la commande cut d’afficher uniquement les caractères 2 à 5 de chacune des lignes du fichier.
1 2 3 4 5 6 | [romain@arch_machine ~]$ cut -c 2-5 voitures.txt enau euge uzuk onda oyot |
Ne conserver que les n premier caractères
Dans l’exemple ci-dessous, nous ne gardons que les 3 premiers caractères du fichier :
1 2 3 4 5 6 | [romain@arch_machine ~]$ cut -c -3 voitures.txt Ren Peu Suz Hon Toy |
Afficher uniquement les n derniers caractères
Dans l’exemple ci-dessous, nous utilisons la commande cut pour ne garder que les 3 derniers caractères :
1 2 3 4 5 6 | [romain@arch_machine nom_repertoire]$ cut -c 3- voitures.txt nault ugeot zuki nda yota |
Afficher que le premier champ délimité d’un fichier
Ci-dessous, nous avons un fichier texte nommé « marques.txt » contenant un liste d’information concernant des véhicules. Ces informations sont séparées par un délimiteur, le caractère virgule « , ». Nous uitlisons la commande cut suivi de l’option -d pour spécifier le délimiteur utilisé, puis l’option -f suivi du numéro de champ.
1 2 3 4 5 6 7 8 9 10 11 12 13 | [romain@arch_machine ~]$ cat marques.txt Renault,kangoo,essence Peugeot,206,diesel Suzuki,alto,diesel Honda,civic,essence Toyota,corolla,essence [romain@arch_machine nom_repertoire]$ cut -d , -f 1 marques.txt Renault Peugeot Suzuki Honda Toyota [romain@arch_machine nom_repertoire]$ |
Afficher les n premiers champ d’un fichier
Ci-dessous nous utilisons la commande cut pour afficher que les 2 premiers champs d’un fichier ayant comme délimiteur le caractère « , ».
1 2 3 4 5 6 | [romain@arch_machine ~]$ cut -d , -f -2 marques.txt Renault,kangoo Peugeot,206 Suzuki,alto Honda,civic Toyota,corolla |
Afficher certains champs avec cut
Dans l’exemple ci-dessous, nous utilisons la commande cut pour afficher certains champs (ici les champs 1 et 3) d’un fichier ayant la virgule comme délimiteur.
1 2 3 4 5 6 | [romain@arch_machine ~]$ cut -d , -f 1,3 marques.txt Renault,essence Peugeot,diesel Suzuki,diesel Honda,essence Toyota,essence |
Tout afficher sauf certains champs
Il est possible de demander à cut de tout selectionner sauf certains champs. Dans l’exemple ci-dessous, nous affichons tous les champs sauf le champ numéro 2.
1 2 3 4 5 6 | [romain@arch_machine ~]$ cut -d , --complement -s -f2 marques.txt Renault,essence Peugeot,diesel Suzuki,diesel Honda,essence Toyota,essence |
Sélectionner certains champs et modifier le délimiteur
Il est possible avec l’option --output-delimiter de modifier le délimiteur qui s’affichera sur la sortie de la commande cut.
Dans l’exemple ci-dessous, cut de sélectionne les deux premiers champs du fichier utilisant le délimiteur virgule et le remplace par un pipe « | » :
1 2 3 4 5 6 | [romain@arch_machine nom_repertoire]$ cut -d , -f -2 marques.txt --output-delimiter='|' Renault|kangoo Peugeot|206 Suzuki|alto Honda|civic Toyota|corolla |