Linux : utiliser des caractères spéciaux dans Bash

Publié le 28 December 2018

Supposons que j’ai un fichier qui contient :

Ligne1  aze
Ligne2  rty
Ligne3  ui
Ligne4  op

Note : il n’y a pas d’espace dans le fichier, uniquement des tabulations.

Comment faire pour afficher uniquement la deuxième colonne ? La commande cut serait parfaite mais il n’est pas possible de mettre une tabulation dans une ligne de commande Bash.

En fait c’est plutôt facile, Il est possible d’utiliser des séquences d’échappement grâce à l’ANSI-C Quoting (désolé, j’ai pas trouvé de traduction). Exemple :

cut -d $'\t' -f 2 fichier.txt
aze
rty
ui
op

La liste des séquences d’échappement est disponible ici : https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html

L’ANSI-C Quoting est disponible avec toutes les commandes Bash, et permets d’utiliser pas mal de commandes de manière « non standard ». Par exemple, pour affiche la troisième ligne d’un fichier :

cut -d $'\n' -f 3 fichier.txt
Ligne3  ui