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

16

A situação:

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

Eu quero importar isso para Libreoffice calce como você sabe que você não pode importar este arquivo enorme com grande número de linhas (acho que o máximo é de 65000 linhas).

Enfim, o que eu preciso é de um comando simples que possa dividir esse arquivo em arquivos menores, com número de linhas em cada arquivo <linha 65000.

Maythux
fonte
@ hakermania: pronto.
Tarun 28/01

Respostas:

19

Você pode usar o splitcomando:

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 N número de linhas.

Use man splitpara mais informações.

Tarun
fonte
3

Se você usar o split 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á apenas usando a ferramenta errada. Use o Libreoffice Base ou o MySQL para importar os dados e 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 livre do Libreoffice que você está usando:

  • pré 3.3.3: o 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 quase sem limite de linhas, se isso não for suficiente. Aqui está uma introdução de como fazer isso e aqui está um exemplo de banco de dados com arquivo de importação . Manipular os dados no Base é fácil e rápido.

Rinzwind
fonte