Comando para dividir um arquivo de texto de acordo com o número de linhas

15

A situação:

Eu tenho um arquivo de texto com cerca de 1,5 GB contendo cerca de 4000000 linhas.

Eu quero importar isso para Libreoffice calc e como você sabe, não é possível importar esse arquivo enorme com um grande número de linhas (acho que o máximo é a linha 65000).

De qualquer forma, o que preciso é de um comando simples que possa dividir este arquivo em arquivos menores com o número de linhas em cada arquivo & lt; 65000 linhas.

    
por Maythux 28.01.2014 / 09:23

2 respostas

17

Você pode usar o comando split :

split -l N /path-to-file

Onde N é o número máximo de linhas que podem estar em um arquivo.

Este comando dividirá o arquivo em arquivos menores, cada um com um número de linhas N .

Use man split para mais informações.

    
por Tarun 28.01.2014 / 09:31
3

Se você usar dividir e criar vários arquivos, seu próximo problema será como usar o Calc para manipular todos esses dados em todos esses arquivos. E isso está acumulando um problema no outro. Com 65000 linhas, serão 62 (!) Páginas.

Você está usando apenas a ferramenta errada. Use o Libreoffice Base ou o MySQL para importar os dados e, em seguida, use o LibreOffice Calc para fazer o cálculo e / ou manipulação desses dados.

Em relação aos limites, isso depende da versão do Libreoffic que você está usando:

  • pré 3.3.3: limite é 65 536 linhas
  • 3.3.3 e posterior: 1 048 576 linhas (1M)

Se você quiser, pode fazer registros de 4m com 3.3.3+ com 4 páginas, mas o módulo Base do LibreOffice pode importar com quase nenhum limite de linha se isso não for suficiente. Aqui está uma introdução sobre como fazer isso e aqui existe um exemplo de banco de dados com o arquivo de importação . Manipular os dados no Base é fácil e rápido.

    
por Rinzwind 28.01.2014 / 09:38