Basis van Linux en de opdrachtregel

$ 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

Wat drukt de laatste awk in de bovenstaande sessie af?

  1. ADe twee regels „cellB FAIL 0.45” en „cellD FAIL 0.31”
  2. BDe twee regels „FAIL” en „FAIL”
  3. CDe twee regels „cellB” en „cellD”
Antwoord en toelichting tonen

Antwoord: C. De twee regels „cellB” en „cellD”

awk splitst elke regel bij witruimte in velden, geschreven als $1 voor het eerste, $2 voor het tweede enzovoort, met $0 voor de hele regel. „$2 == "FAIL"” is een patroon dat regels kiest waarvan het tweede veld FAIL is, en {print $1} is de actie die het eerste veld van zo'n regel afdrukt. De passende regels zijn die van cellB en cellD, dus cellB en cellD worden afgedrukt. awk behandelt een reeks spaties als één scheidingsteken, en is daardoor soms handiger dan cut om kolommen te halen uit uitvoer met ongelijke tussenruimte.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van Linux en de opdrachtregel

  1. Welke beschrijving van de bestanden die worden gevonden als „find /data -name "*.log" -mtime +7 -size +100M” met GNU find wordt uitgevoerd, is juist?
  2. Om een proces te stoppen dat niet meer reageert, wordt aangeraden eerst „kill <proces-ID>” te gebruiken en „kill -9 <proces-ID>” alleen als het proces daarmee niet stopt. Wat is de reden?
  3. Terwijl in een terminal het langdurige ./sim.sh draait, wil je in dezelfde terminal andere commando's gebruiken. Wat gebeurt er als je op Ctrl+Z drukt en daarna bg uitvoert?
  4. Op een server die via SSH is bereikt, werd een langdurige taak gestart met „./run.sh &”, en toen de verbinding werd verbroken, stopte de taak ook. Wat is de meest geschikte manier om de taak te starten zodat die blijft draaien nadat de verbinding is verbroken?
  5. Welke tekens worden getoond als de bovenstaande twee regels in een shell worden uitgevoerd?