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.txt

Dans la session ci-dessus, qu'affiche le dernier awk ?

  1. ALes deux lignes « cellB FAIL 0.45 » et « cellD FAIL 0.31 »
  2. BLes deux lignes FAIL et FAIL
  3. 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.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases de Linux et de la ligne de commande

  1. Quelle description des fichiers trouvés en exécutant « find /data -name "*.log" -mtime +7 -size +100M » avec le find de GNU est correcte ?
  2. Pour arrêter un processus qui ne répond plus, il est conseillé d'utiliser d'abord « kill <ID du processus> », et de n'utiliser « kill -9 <ID du processus> » que si cela ne suffit pas à le terminer. Quelle en est la raison ?
  3. Pendant qu'un long ./sim.sh s'exécute dans un terminal, on veut utiliser d'autres commandes dans le même terminal. Que se passe-t-il si l'on appuie sur Ctrl+Z, puis qu'on exécute bg ?
  4. Sur un serveur auquel on s'est connecté par SSH, on a lancé un long traitement avec « ./run.sh & », puis, en fermant la connexion, le traitement s'est arrêté lui aussi. Quelle est la manière la plus appropriée de le lancer pour qu'il continue après la fermeture de la connexion ?
  5. Si l'on exécute les deux lignes ci-dessus dans un shell, quels caractères s'affichent ?