Grundlagen von Linux und der Kommandozeile

$ 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

Was gibt das letzte awk in der obigen Sitzung aus?

  1. ADie zwei Zeilen „cellB FAIL 0.45“ und „cellD FAIL 0.31“
  2. BDie zwei Zeilen „FAIL“ und „FAIL“
  3. CDie zwei Zeilen „cellB“ und „cellD“
Antwort und Erläuterung anzeigen

Antwort: C. Die zwei Zeilen „cellB“ und „cellD“

awk zerlegt jede Zeile an Leerräumen in Felder, die als $1 für das erste, $2 für das zweite usw. geschrieben werden; $0 steht für die ganze Zeile. „$2 == "FAIL"“ ist eine Bedingung, die Zeilen auswählt, deren zweites Feld FAIL ist, und {print $1} ist die Aktion, die das erste Feld dieser Zeile ausgibt. Das trifft auf die Zeilen von cellB und cellD zu, also werden cellB und cellD ausgegeben. awk behandelt eine Folge von Leerzeichen als ein einziges Trennzeichen und ist deshalb beim Herausschneiden von Spalten aus Ausgaben mit ungleichmäßigen Abständen manchmal einfacher zu handhaben als cut.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen von Linux und der Kommandozeile

  1. Welche Beschreibung der Dateien, die GNU find mit „find /data -name "*.log" -mtime +7 -size +100M“ findet, ist richtig?
  2. Um einen Prozess zu stoppen, der nicht mehr reagiert, gilt es als empfehlenswert, zuerst „kill Prozess-ID“ zu verwenden und „kill -9 Prozess-ID“ nur dann, wenn er damit nicht endet. Was ist der Grund?
  3. Während ein langwieriges ./sim.sh in einem Terminal läuft, möchte man im selben Terminal andere Befehle verwenden. Was geschieht, wenn man Strg+Z drückt und danach bg ausführt?
  4. Auf einem per SSH erreichten Server wurde eine langwierige Berechnung mit „./run.sh &“ gestartet; als die Verbindung getrennt wurde, brach auch die Berechnung ab. Wie startet man sie am besten, damit sie nach dem Trennen der Verbindung weiterläuft?
  5. Welche Zeichen werden angezeigt, wenn die beiden obigen Zeilen in einer Shell ausgeführt werden?