I recently needed to cut the first N lines of output from a command as well as. the last M lines of the command.
This is easily done using head
and tail
:
Print all except the first 2 lines:
$ seq 10 | tail -n+2
2
3
4
5
6
7
8
9
10
Print all except the last 2 lines:
seq 10 |head -n-2
1
2
3
4
5
6
7
8
And in combination: print all except the first two and the last two lines:
$ seq 10 | tail -n+2 |head -n-2
2
3
4
5
6
7
8