copiando um conjunto de linhas em novo arquivo

0

Eu tenho um arquivo de texto com 100.000 linhas ou mais. Quero copiar linhas específicas do arquivo de texto para um novo arquivo usando:

sed -n '1,1000p;1000q' orig-data-file > new-file

No entanto, quero criar uma série de novos arquivos copiando um conjunto de linhas da seguinte forma:

First line, last line
1,1000
1001,2000
2001,3000
3001,4000
so on

Não consigo escrever um script de shell para automatizar esse processo. Alguém pode me ajudar. Muito apreço antecipadamente.

    
por user146907 10.12.2015 / 17:38

1 resposta

0

Como observado nos comentários, você pode fazer este trabalho usando split . No entanto, você solicitou sed , então eu darei a você sed . (É uma ferramenta perfeitamente boa para isso se você não quiser usar split .)

Aqui está um exemplo:

$ cat input.txt
Header
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
Line 11
Line 12
$ sed -n -e '1{w file1' -e 'w file2' -e 'w file3' -e '};2,5w file1' -e '6,10w file2' -e '11,$w file3' input.txt 
$ cat file1
Header
Line 2
Line 3
Line 4
Line 5
$ cat file2
Header
Line 6
Line 7
Line 8
Line 9
Line 10
$ cat file3
Header
Line 11
Line 12
$ 
    
por 15.04.2016 / 22:44