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
- die Kopfzeile aus der Eingabedatei in eine Variable packen
- Kopfzeile drucken
- verarbeite die Datei mit
grep
um Zeilen wegzulassen, die mit dem Header übereinstimmen - Erfassen Sie die Ausgabe der beiden obigen Schritte in der Ausgabedatei