GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie verwendet man Awk, um nur Zeilen mit 5 Spalten zu drucken?

Ich habe eine Datei, die durch Pipes getrennte Daten enthält. Ich möchte die Zeilen drucken, die nur 5 Spalten haben.
Ich habe das Folgende versucht. Es funktioniert nicht. Es druckt einfach alle Zeilen. Könnt ihr mir bitte sagen wie ich es richtig mache. Vielen Dank!

Inhalt der Datei:

10413300|Maintenance Stock Clerk A - Michelle Hanley | Michelle Hanley (1680654)|Filled||10402112
10413301|Maintenance Stock Clerk - dasda|space||10402122
MOM Parkcentrum F;Alkotás u. 53.||34535|34345|asd
Business Center Naberezhnaya Tower" Block C"|||3453|ffg|345

Hier versuche ich Zeilen zu drucken, die nur 5 Spalten haben.

$ gawk -F "|" '{ if (NF=5) print $0 }' data3
10413300 Maintenance Stock Clerk A - Michelle Hanley   Michelle Hanley (1680654) Filled
10413301 Maintenance Stock Clerk - dasda space  10402122
MOM Parkcentrum F;Alkotás u. 53.  34535 34345 asd
Business Center Naberezhnaya Tower Block C   3453 ffg

Die Ausgabe zeigt, dass 2 von 4 Zeilen mehr als 5 Spalten haben.

$ gawk -F "|" '{print NF}' data3
6
5
5
6

Akzeptierte Antwort:

NF=5 ist eine Zuweisung, das Testen von Werten erfolgt mit == . So:

awk -F | 'NF==5' data3

Linux
  1. Wie man nur bestimmten Nicht-Root-Benutzern erlaubt, crontab zu verwenden

  2. Wie schneide ich die ersten n und letzten n Spalten?

  3. So zeigen Sie nur verschiedene Zeilen mit diff (bash) an

  4. So finden Sie unter Linux Zeilen, die eine Zeichenfolge enthalten

  5. Wie verwende ich sed, um nur doppelte Leerzeilen zu entfernen?

So verwenden Sie den Befehl uniq zum Verarbeiten von Listen in Linux

So drucken Sie doppelte Zeilen in einer Textdatei unter Linux

Wie drucke ich die Zeilen Nummer 15 und 25 von jeweils 50 Zeilen?

Wie kann man die -f-Ausgabe mit Farben nur mit Awk anpassen und den Rest der Ausgabe anzeigen?

Wie verwende ich die Zeilen einer Datei als Argumente eines Befehls?

Nur Wörter mit Großbuchstaben drucken (Linux)