Shell-Skript zum Drucken von Zeilen, wenn in Spalte 2 ein Wert vorhanden ist

Shell-Skript zum Drucken von Zeilen, wenn in Spalte 2 ein Wert vorhanden ist
1 2 3 4
3 1 4 2
1 4 3 2
4 2 1 3

Wie kann ich alle Zeilen ausdrucken, auf denen sich ein2in der zweiten Spalte.

Antwort1

Verwenden von awk(oder seinem Cousin gawk):

gawk '$2==2 {print $0}' inputfile

In awkSpalten wird ein angegeben $, wobei $1die erste Spalte, $2die zweite usw. die ganze Zeile ist $0. Dieses Beispiel lautet also: Wenn Spalte 2 gleich 2 ist, drucke die ganze Zeile.

Bearbeiten: wie devnull unten sagte:

gawk '$2==2' inputfile 

reicht aus. Um die Zeilen mit 2 in der zweiten Spalte und 4 in der letzten auszudrucken $NF, verwenden Sie , was für die Anzahl der Felder (also die letzte Spalte) steht:

gawk '$2==2 && $NF==4'  inputfile

verwandte Informationen