wie die gesehene Option von awk funktioniert

wie die gesehene Option von awk funktioniert

Ich bin vor kurzem auf ein awk gestoßengesehenOption. Ich sehe, dass es Duplikate in Dateien entfernt. Ich könnte eine Erklärung gebrauchen, wie es funktioniert.

cat tes
1
2
3
1
1
1
3
4

mit awk gesehene Ausgabe

cat tes | awk '!seen[$0]++'

1
2
3
4

Antwort1

seenist der beliebige Name eines assoziativen Arrays. Es handelt sich hierbei nicht um eine Option. Sie können stattdessen aoder oder die meisten anderen Namen verwenden.b

Der Code !seen[$0]++besteht aus einem Test und einem Inkrement.

Wenn seen[$0], also der Wert des Array-Elements, das mit dem Schlüssel $0, der aktuellen Eingabezeile, verknüpft ist, Null (oder leer) ist, dann !seen[$0]ist der Boolesche Wert vonWAHR.

Der dem Schlüssel entsprechende Wert im Array $0wird dann erhöht, was bedeutet, dass der TestFALSCHalle anderen Male, wenn der gleiche Wert $0gefunden wird.

Der Effekt ist, dass der TestWAHRdas erste Mal, dass eine bestimmte Zeile in der Eingabe erscheint, undFALSCHzu allen anderen Zeiten.

Wenn ein Test ohne zugehörige AktionWAHR, DieStandardAktion wird ausgelöst. Die Standardaktion ist das Äquivalent von { print }oder { print $0 }, wodurch der aktuelle Datensatz gedruckt wird, der in diesem Beispiel für alle Konten und Zwecke die aktuelle, unveränderte Eingabezeile ist.

verwandte Informationen