Wie lösche ich Zeilen mit weniger als 2 Spalten in einer Datendatei in Linux?

Wie lösche ich Zeilen mit weniger als 2 Spalten in einer Datendatei in Linux?

Wenn die Eingabe so aussieht:

    1
    2 4 5 6 7 19
    20
    22
    24 26 27 
    29 30 31 32 34 40 50 56 58
    234 235 270 500
    1234 1235 1236 1237
    2300

Ich möchte die Zeilen mit weniger als 2 Spalten löschen, daher sollte die Ausgabe folgendermaßen aussehen:

    2 4 5 6 7 19
    24 26 27 
    29 30 31 32 34 40 50 56 58
    234 235 270 500
    1234 1235 1236 1237

Antwort1

Wie steeldriver kommentierte:

awk 'NF>1' input > output

Ein anderer Weg:

grep '[^ ] [^ ]' input > output

(Suchen Sie nach einem Zeichen, das kein Leerzeichen ist, gefolgt von einem Leerzeichen, gefolgt von einem Zeichen, das kein Leerzeichen ist).

So bearbeiten Sie es direkt:

sed -i '/[^ ] [^ ]/!d' input

verwandte Informationen