O que é uma boa maneira de extrair, linhas 20 -45 de um enorme arquivo de texto. Não interativamente, claro!
você poderia tentar:
cat textfile | head -n 45 | tail -n 26
o
cat textfile | awk "20 <= NR && NR <= 45"
atualização :
Como mahomedalid apontou, cat
não é necessário e um pouco redundante, mas faz para um comando limpo e legível.
Se cat
incomodá-lo, um melhor rolamento seria:
<textfile awk "20 <= NR && NR <= 45"
Mesmo mais simples:
sed -n '20,45p;45q' < textfile
A bandeira -N desativa a saída padrão. Os "20,45" aborda as linhas de 20 a 45, inclusive. O comando "P" imprime a linha atual. E o Q pára depois de imprimir a linha.
Ruby -ne 'print if 20 .. 45' file
Desde que sed e awk já foram tomadas, aqui está uma solução Perl:
Perl -nle "print if ($. > 19 && $. < 46)" < textfile
Ou, como apontado nos comentários:
Perl -ne 'print if 20..45' textfile