
Ich habe 31 Dateien in einem Verzeichnis. Das Dateiformat ist wie folgt:
TimeStamop user-id
1471417712595 1936f35c-XXXX-XXXX-XXXX-49898523b8ea
1471417717238 e3153e8d-XXXX-XXXX-XXXX-7710089c77bb
1471417718730 4e470320-XXXX-XXXX-XXXX-29bc448f09a1
1471417719211 e8b6a6c0-XXXX-XXXX-XXXX-dd68d836fb31
1471417723775 cbc009c1-XXXX-XXXX-XXXX-88cda2b1b812
1471417723775 cbc009c1-XXXX-XXXX-XXXX-88cda2b1b812
1471417725790 c332eba7-XXXX-XXXX-XXXX-509c42a621d1
1471417725522 4712acf1-XXXX-XXXX-XXXX-11a24bcbe7c8
1471417601920 502bc0dd-XXXX-XXXX-XXXX-eff38b468461
1471417604615 8c6b2ef9-XXXX-XXXX-XXXX-9efb1223e383
Ich möchte nur Zeitstempelinformationen daraus und möchte alle Zeitstempel mithilfe eines Linux-Shell-Skripts in eine Datei schreiben. Die Gesamtdateigröße (31 Dateien) beträgt 4,5 GB. Ich möchte eine effiziente Methode für diese Aufgabe. Ich habe dies in Python getan. möchte es aber in einem Shell-Skript.
Antwort1
Mit awk
aus dem Verzeichnis, das die Dateien enthält:
awk 'FNR>1 {print $1}' * >output.txt
FNR>1
stimmt mit allen Datensätzen überein, deren Datensatznummer größer als 1 ist, d. h., dies dient dazu, den Header aus jeder Datei zu entfernenFür diese Datensätze
{print $1}
wird nur das erste Feld gedruckt, das die Zeitstempel enthält