How to output lines 800-900 of a file with a unix command?

Jesper Rønn-Jensen picture Jesper Rønn-Jensen · Oct 21, 2009 · Viewed 17.5k times · Source

I want to output all lines between a and b in a file.

This works but seems like overkill:

head -n 900 file.txt | tail -n 100

My lack of unix knowledge seems to be the limit here. Any suggestions?

Answer

ndim picture ndim · Oct 21, 2009
sed -n '800,900p' file.txt

This will print (p) lines 800 through 900, including both line 800 and 900 (i.e. 101 lines in total). It will not print any other lines (-n).

Adjust from 800 to 801 and/or 900 to 899 to make it do exactly what you think "between 800 and 900" should mean in your case.