Como dividir um arquivo de texto em vários arquivos de 100 linhas cada? [duplicado]

8

Minha pergunta pode ser pouco clara aqui. Eu tenho um arquivo de texto gigante com valores semelhantes a este

0.00601233
0.000139403
0.000133679
0.000139497
0.000141683
0.000141888
0.000138646
0.000133465
0.000146326
0.000135611
...

E eu quero dividi-lo em vários arquivos de 100 linhas.

O arquivo 1 terá as linhas de 1 a 100.

O arquivo 2 terá as linhas 101 a 200.

etc ...

Provavelmente, existe uma maneira de fazer isso usando sed ou awk , mas não estou familiarizado o suficiente com essas ferramentas ou com expressões regulares para fazer o que quero aqui.

    
por mespiaut 11.07.2014 / 12:53

1 resposta

14

Use o split command :

split -l 100 file

Por padrão, split cria arquivos de saída xaa , xab e assim por diante, mas você pode especificar o prefixo no final e obter sufixos puramente numéricos se desejar:

split -d -l 100 file PREFIX 

Este comando fará com que os arquivos PREFIX01 , PREFIX02 e assim por diante. A -d opção é uma extensão GNU , por isso não é suportada em todos os sistemas. Nesse caso, ou alternativamente, você pode renomeá-los com um simples loop de shell após o fato - ele sempre gera nomes de arquivos que ordenam em ordem.

    
por 11.07.2014 / 12:57