Was ist der beste Weg, um die Zeilen X bis Y einer großen Datei anzuzeigen?

350
Dan Tao

Ich habe eine sehr große Textdatei und möchte beispielsweise die Zeilen 2000 bis 2010 anzeigen (einschließlich der Zeilennummern).

Ich kenne eine Art Umweg, um dorthin zu gelangen:

sc -l [file] cat -n [file] | tail -n [previous result - 2000] | head -n 10 

Aber es fühlt sich an, als müsste es einen besseren Weg geben. Gibt es?

1
Ihr letzter Befehl kann zu head -2010 FileName | vereinfacht werden Schwanz -10. amit_g vor 11 Jahren 1
@amit_g: Ha, guter Anruf. Irgendwie habe ich das total vermisst. Dan Tao vor 11 Jahren 0

1 Antwort auf die Frage

4
nerdwaller

Sie könnten verwenden, sedwenn Sie die gewünschten Zeilen kennen.

sed -n X,Yp file.txt

Oder wenn es etwas zwischen REGEX ist, mit awk:

awk '/FIRST REGEX/,/LAST REGEX/' input.txt

Oder eine awkMöglichkeit, den sed-Vorschlag auszuführen:

awk 'NR>=X && NR<=Y' file.txt

+1 `sed` is a good choice. It can do regex ranges as well, e.g., `sed -n '/^#ifdef/,/^#endif/p'`. Nicole Hamilton vor 11 Jahren 0