Ist es möglich, das aktuelle Feld in der Verarbeitung zu überprüfen.Awk, um das aktuelle Feld zu prüfen
awk '/pattern/{print field where pattern found}' #Howto
Ist es möglich, das aktuelle Feld in der Verarbeitung zu überprüfen.Awk, um das aktuelle Feld zu prüfen
awk '/pattern/{print field where pattern found}' #Howto
$ awk '/pattern/{for(i=1;$i!~/pattern/;i++); print i}' file
Bei mehreren passt es nur das erste Feld des Spiels zurück. Nehmen wir es für eine Spritztour:
$ cat file
A 1 A1g DELL
A 1 B1s HP
A 7 HP HP
A 5 Jgf KIT
A 1 Def JOP
$ awk '/HP/{for(i=1;$i!~/HP/;i++); print i}' file
4
3
Eigentlich war das '/ pattern/{Beispiel}' Zeug nur ein Beispiel, ich konzentriere mich mehr auf den allgemeinen Fall – sjsam
Ich glaube nicht, gibt es eine eingebaute Möglichkeit, die Feldnummer in dem das Spiel stattgefunden zu bekommen, aber Sie können es tun, mit einer Schleife:
awk '{ for (i = 1; i <= NF; ++i) if ($i ~ /pattern/) print i }' file
Dies druckt alle Felder, die dem Muster entsprechen.
Was passiert, wenn mehrere Felder mit dem Muster übereinstimmen? – 123