cut
100%

Text-Fu · Leçon 6

cut

Apprenez à sélectionner des positions de caractères ou des champs délimités sur chaque ligne avec cut.

cut sélectionne des positions de caractères ou des champs sur chaque ligne. Il convient surtout aux textes de structure régulière dont les délimiteurs et positions sont connus.

$ printf 'name\trole\nalice\tadmin\nbob\tviewer\n' > team.tsv

Ici, printf transforme \t en tabulation et \n en retour à la ligne.

Sélectionner des positions de caractères

Utilisez -c LIST ; les positions commencent à 1 :

$ cut -c 1 team.tsv
n
a
b

La liste peut contenir des positions individuelles et des plages :

$ cut -c 1-4 team.tsv
name
alic
bob
$ cut -c 1,3 team.tsv
nm
ai
bb

Espaces, tabulations et ponctuation occupent aussi des positions. Chaque ligne est traitée séparément.

Quelle commande affiche le premier caractère de chaque ligne de names.txt ?

Sélectionner des champs séparés par des tabulations

-f LIST sélectionne les champs ; le délimiteur par défaut est la tabulation :

$ cut -f 2 team.tsv
role
admin
viewer

Une liste peut prendre des formes comme 1, 1,3, 2-4, -3 ou 2-.

Quelle commande affiche le deuxième champ de chaque ligne de team.tsv ?

Choisir un délimiteur personnalisé

Employez -d CHARACTER avec -f :

$ printf 'alice;admin\nbob;viewer\n' > team.txt
$ cut -d ';' -f 1 team.txt
alice
bob

Le délimiteur est ici un caractère. Citez ;, car il possède un sens de contrôle dans le shell.

Quelle commande affiche le deuxième champ délimité par un point-virgule dans team.txt ?

Gérer les lignes sans délimiteur

En mode champ, cut reproduit normalement une ligne sans délimiteur. -s la supprime :

$ printf 'alice;admin\nheader\nbob;viewer\n' | cut -s -d ';' -f 2
admin
viewer

Cela ne suffit pas à analyser un CSV général, qui peut contenir délimiteurs cités, retours à la ligne et échappements. Utilisez alors un outil compatible CSV.

Que fait -s avec cut -d ':' -f 1 ?

Lire depuis stdin

Sans fichier, ou avec - comme opérande, cut lit stdin :

$ printf 'red:1\nblue:2\n' | cut -d ':' -f 1
red
blue

Dans generate-data | cut -d ':' -f 1, où cut lit-il son entrée ?

Leçon terminée

Vous avez terminé cut

Vous savez maintenant sélectionner des positions prévisibles avec cut.

  • Sélectionner des caractères ou des plages.

  • Extraire les champs tabulés avec -f.

  • Fournir un délimiteur avec -d.

  • Supprimer les lignes non délimitées si nécessaire.

  • Lire du texte structuré depuis un fichier ou stdin.

Conservez votre progression

Créez un compte gratuit pour enregistrer cette leçon et continuer sur n'importe quel appareil.

Créer un compte gratuit
Leçon Suivante
Retour à Text-Fu