Ich suche bestimmte Gruppen von Zeilen aus großen (~ 870.000.000 Zeilen) Textdateien. Zum Beispiel könnte ich in einer Datei mit 50 Zeilen die Zeilen 3-6, 18-27 und 39-45 wünschen.Zeilen aus einer großen Textdatei lesen
Von Browsing Stack-Überlauf, ich habe, dass der Bash-Befehl gefunden:
tail -n+NUMstart file |head -nNUMend
der schnellste Weg ist eine einzige Zeile oder eine Gruppe von Linien bei NUMSTART beginnen zu bekommen und zu NUMend gehen. Beim Lesen mehrerer Liniengruppen scheint dies jedoch ineffizient zu sein. Normalerweise ist die Technik nicht so wichtig, aber mit so großen Dateien macht es einen großen Unterschied.
Gibt es einen besseren Weg, als den obigen Befehl für jede Gruppe von Linien zu verwenden? Ich gehe davon aus, dass die Antwort höchstwahrscheinlich ein Bash-Befehl sein wird, aber ich bin wirklich offen für jede Sprache/jedes Werkzeug, das den Job am besten erfüllt.
Ich bin gespannt, ob das viel schneller wäre als 'awk'. – codeforester
Dies wird die gesamte Datei scannen, kann nicht schneller sein als 'awk' mit einem Ausgang nach der letzten Zeile. – karakfa
Das Hinzufügen von '45q' als letzten Befehl würde das beheben. –