Aqui está uma técnica:
$ seq 10 > input
$ set N 2; set M 4
$ set wanted (sed $N'q' input; tac input | sed $M'q' | tac)
$ printf "%s\n" $wanted
1
2
7
8
9
10
Se N+M > num_lines
, você obterá linhas duplicadas com essa abordagem.
Ou , use os subscritos da matriz do fish:
$ set lines (cat input)
$ printf "%s\n" $lines[1..$N] $lines[(math (count $lines) - $M + 1)..-1]
1
2
7
8
9
10