Use sed :
sed -n -e '10,100p' input.txt > output.txt
sed -n
significa que não imprime cada linha por padrão. -e
significa executar o próximo argumento como um script sed. 10,100p
é um script sed que significa iniciar na linha 10, até a linha 100 (inclusive), imprimir ( p
) essa linha. Em seguida, a saída é salva em output.txt
.
Se o seu ficheiro for mais longo do que o sugerido, esta versão (sugerida nos comentários) será mais rápida:
sed -e '1,9d;100q'
Isso significa que excluir as linhas 1-9, sair após a linha 100 e imprimir o resto. Para 200 linhas, isso não vai importar, mas para 200.000 linhas, a primeira versão ainda vai olhar para todas as linhas, mesmo quando nunca vai imprimi-las. Eu prefiro a primeira versão em geral por ser explícita, mas com um arquivo longo isso será muito mais rápido - você conhece melhor seus dados.
Como alternativa, você pode usar head
e tail
em combinação:
tail -n +10 input.txt | head -n 91 > output.txt
Desta vez, tail -n +10
imprime o arquivo inteiro a partir da linha 10, e head -n 91
imprime as primeiras 91 linhas desse (até e incluindo a linha 100 do arquivo original). Ele é redirecionado para output.txt
da mesma maneira.