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

Zusätzliche Kopfzeilen außer der ersten Zeile aus der Datei entfernen?

Ich habe eine Datei, die wie dieses Spielzeugbeispiel aussieht. Meine aktuelle Datei hat 4 Millionen Zeilen, von denen ich etwa 10 löschen muss.

ID  Data1  Data2
1    100    100
2    100    200
3    200    100
ID  Data1  Data2
4    100    100
ID  Data1  Data2
5    200    200

Ich möchte die Zeilen löschen, die wie die Kopfzeile aussehen, mit Ausnahme der ersten Zeile.

Endgültige Datei:

ID  Data1  Data2
1    100    100
2    100    200
3    200    100
4    100    100
5    200    200

Wie kann ich das tun?

Akzeptierte Antwort:

header=$(head -n 1 input)
(printf "%sn" "$header";
 grep -vFxe "$header" input
) > output
  1. die Kopfzeile aus der Eingabedatei in eine Variable packen
  2. Kopfzeile drucken
  3. verarbeite die Datei mit grep um Zeilen wegzulassen, die mit dem Header übereinstimmen
  4. Erfassen Sie die Ausgabe der beiden obigen Schritte in der Ausgabedatei

Linux
  1. Verwenden von Google Drive über die Linux-Befehlszeile

  2. Wie kann man die Zeilen einer Datei durchlaufen?

  3. Effizient die ersten paar Zeilen aus einer Textdatei entfernen?

  4. Wie entferne ich die Bom aus einer UTF-8-Datei?

  5. Entfernen Sie ungerade oder gerade Zeilen aus einer Textdatei

So entfernen Sie Zeilen aus einer Datei mit dem Sed-Befehl

Drucken Sie eine Datei, wobei Sie die ersten X-Zeilen in Bash überspringen

Drucken Sie die letzte Zeile einer Datei über die CLI

Wie entferne ich die Zeilen, die in Datei B erscheinen, aus einer anderen Datei A?

Entfernt die ersten N Zeilen aus einer aktiven Protokolldatei

Wie extrahiert man Text aus einer großen Datei, beginnend mit dem ersten Auftreten einer Zeichenfolge?