Commandes Linux : cut

CUT

Installé avec le paquet coreutils
Voir aussi : sort et uniq

 

Afficher la version de la commande cut

cut --version

ou

apt-cache policy coreutils

 
Soit le fichier test.txt suivant, utilisé pour les tests :

one	two	three	four	five
alpha	beta	gamma	delta	epsilon

 

Extraire le Nième champ

cut -f N filename

ex :
Ci-dessous, on extrait le champ 3

# cut -f 3 test.txt 
three
gamma

 

Extraire un intervalle de champs

Intervalle explicite : [N-M] Du champ N au champ M

cut -f N-M filename

Intervalle implicite : [N-] Du champ N jusqu’à la fin

cut -f N- filename

Intervalle implicite : [-M] Du début jusqu’au champ M

cut -f -M filename

ex :
Ci-dessous, on extrait le champ 3

# cut -f 3 test.txt 
three
gamma
# cut -f 2-4 test.txt
two	three	four
beta	gamma	delta
# cut -f 1,3,5 test.txt
one	three	five
alpha	gamma	epsilon
# cut -f 1,3- test.txt
one	three	four	five
alpha	gamma	delta	epsilon

 

Extraire des caractères plutôt que des champs

cut -c N-M filename

 

Extraire des octets plutôt que des champs

cut -b N-M filename

 

Spécifier un délimiteur d’entrée alternatif

cut -d 'separateur' filename

ex :

# cut -d ':' -f 1,3-4 /etc/passwd | tail -5
pulse:118:125
hplip:119:7
geoclue:120:127
adminsys:1000:1000
vboxadd:999:1

 

Spécifier un délimiteur de sortie alternatif

cut --output-delimiter='separateur' filename

Rmq : pour une tabulation, saisir $’\t’
ex :

# cut -d ':' -f 1,3-4 --output-delimiter=' -> ' /etc/passwd | tail -5
pulse -> 118 -> 125
hplip -> 119 -> 7
geoclue -> 120 -> 127
adminsys -> 1000 -> 1000
vboxadd -> 999 -> 1
# cut -d ':' -f 1,3-4 --output-delimiter=$'\t' test.txt | tail -5
pulse	118	125
hplip	119	7
geoclue	120	127
adminsys	1000	1000
vboxadd	999	1

 

Ne pas afficher les lignes qui ne contiennent pas le délimiteur spécifié

cut -s -d 'separateur' filename
Fermer le menu
%d blogueurs aiment cette page :