Récupérer le champ d’une ligne Découper:ligne de champs

Objectif

Récupérer le champ d’une ligne qui possède un séparateur de champs.

Exemple

Récupérer le troisième champ de la variable ligne :

$ ligne='Newton|Christine|London'  

Première méthode

En utilisant la commande cut :

$ echo $ligne  | cut -d'|' -f3  
London 

Le caractère séparateur | (option -d) doit être protégé par des apostrophes pour que le shell ne l’interprète pas comme un tube de communication.

(cf. chapitre Les commandes filtres - Traitement de données)

Deuxième méthode

En utilisant la commande awk :

$ echo $ligne | awk -F'|' '{print $3}'  
London 

Le caractère séparateur | (option -F) doit être protégé par des apostrophes pour que le shell ne l’interprète pas comme un tube de communication.

(cf. chapitre Le langage de programmation awk - Variables spéciales)

Troisième méthode

En utilisant la commande read du shell, avec modification de la variable IFS.

En ksh :

$ IFS="|"  
$ echo "$ligne" | read nom prenom ville  
$ echo $ville  
London 

Il ne faut pas oublier de mettre des guillemets autour de la variable ligne car elle contient le caractère | qui est maintenant un délimiteur (comme l’était l’espace auparavant). Il ne faut pas que ce caractère soit...

couv_EI7PRO.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Calculer la longueur d'une chaîne
Suivant
Ne pas afficher certaines lignes d'un flux