Bases de Linux et de la ligne de commande
$ cat result.txt
cellA PASS 0.12
cellB FAIL 0.45
cellC PASS 0.08
cellD FAIL 0.31
$ awk '$2 == "FAIL" {print $1}' result.txtDans la session ci-dessus, qu'affiche le dernier awk ?
- ALes deux lignes « cellB FAIL 0.45 » et « cellD FAIL 0.31 »
- BLes deux lignes FAIL et FAIL
- CLes deux lignes cellB et cellD
Afficher la réponse et l'explication
Réponse : C. Les deux lignes cellB et cellD
awk découpe chaque ligne en champs au niveau des blancs ; le premier s'écrit $1, le deuxième $2, et ainsi de suite, et la ligne entière s'écrit $0. « $2 == "FAIL" » est une condition qui sélectionne les lignes dont le deuxième champ est FAIL, et {print $1} est l'action qui affiche le premier champ de ces lignes. Les lignes qui remplissent la condition sont celles de cellB et de cellD : cellB et cellD s'affichent donc. awk considère une suite de blancs comme un seul séparateur : il peut donc être plus pratique que cut pour extraire les colonnes d'une sortie dont les espacements sont irréguliers.
Continuer : 9 autres questions sur Bases de Linux et de la ligne de commande