Pergunta

Quero produzir todas as linhas entre A e B em um arquivo.

Isso funciona, mas parece um exagero:

head -n 900 file.txt | tail -n 100

Minha falta de conhecimento do Unix parece ser o limite aqui. Alguma sugestão?

Foi útil?

Solução

sed -n '800,900p' file.txt

Isso irá imprimir (p) Linhas 800 a 900, incluindo a linha 800 e 900 (ou seja, 101 linhas no total). Não imprimirá outras linhas (-n).

Ajuste de 800 a 801 e/ou 900 a 899 para fazer com que faça exatamente o que você pensa "entre 800 e 900" deve significar no seu caso.

Outras dicas

Encontrou uma maneira mais bonita: usando sed, para imprimir apenas linhas entre A e B:

sed -n -e 800,900p filename.txt

Da postagem do blog: Usando sed para extrair linhas em um arquivo de texto

Uma maneira de usar é encontrar (e diff) seções semelhantes de arquivos:

 sed -n -e 705,830p mnetframe.css > tmp1; \
 sed -n -e 830,955p mnetframe.css > tmp2; \
 diff --side-by-side tmp1 tmp2

O que me dará uma boa comparação lado a lado de seções semelhantes de um arquivo :)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top