web-development-kb-pt.site

Qual é a melhor maneira de tirar um segmento de um arquivo de texto?

O que é uma boa maneira de extrair, linhas 20 -45 de um enorme arquivo de texto. Não interativamente, claro!

13
Chris Huang-Leaver

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"
12
Stefan

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.

13
dkagedal
Ruby -ne 'print if 20 .. 45' file
3
user1606

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
2
Steven D