web-dev-qa-db-fra.com

Comment définir le délimiteur 'tab' avec 'cut' en BASH?

Voici un exemple d'utilisation de cut pour diviser une entrée en champs à l'aide d'un délimiteur d'espace et pour obtenir le deuxième champ:

cut -f2 -d' '

Comment définir le délimiteur comme un onglet, au lieu d'un espace?

246

Deux façons:

Presse Ctrl+V et alors Tab.

cut -f2 -d'   ' infile

ou écrivez-le comme ceci:

cut -f2 -d$'\t' infile
334
Birei

Tab est la valeur par défaut.

Voir la page de manuel de coupe .

-d delim
         Use delim as the field delimiter character instead of the tab
         character.

Vous devez donc simplement écrire

cut -f 2
209
Mikel
awk -F '\t' '{ print $2 }' inputfile

Cela extrait le deuxième champ délimité par des tabulations de chaque ligne d'entrée de inputfile.

14
Iľja

Plus généralement, sans nécessiter de caractères invisibles: utilisez tr pour convertir les délimiteurs dans un format qui peut être spécifié plus facilement en cut.

$ echo -e "a\tb\tc" |tr '\t' ' ' |cut -d' ' -f2
b

tr est un outil de correspondance et de remplacement de caractères simple mais puissant.

10
nobar