Basicamente você está emulando cauda. X = 20 neste exemplo. O exemplo a seguir excluirá todas as últimas 20 linhas, exceto as seguintes:
sed -e :a -e '$q;N;21,$D;ba' filename
Explicação:
- O -e: a cria um rótulo chamado
- O próximo -e:
- $ q - fecha e imprime o espaço de padrão se for a última linha
- N - próxima linha
- 21, $ D - executa o comando "D" se a linha # for > = 21 (21, $ = 21ª linha para $, que é o final do arquivo)
- ba - ramificações para rotular 'a', que é o começo do script.