Commande pour diviser un fichier texte en fonction du nombre de lignes

16

La situation:

J'ai un fichier texte d'environ 1,5 Go contenant environ des 4000000lignes.

Je veux l'importer Libreoffice calcet comme vous le savez, vous ne pouvez pas importer cet énorme fichier avec un grand nombre de lignes (je pense que le maximum est de 65000 lignes).

Quoi qu'il en soit, j'ai besoin d'une simple commande qui peut diviser ce fichier en fichiers plus petits avec un nombre de lignes dans chaque fichier <65000 lignes.

Maythux
la source
@hakermania: c'est fait.
Tarun

Réponses:

19

Vous pouvez utiliser la splitcommande:

split -l N /path-to-file

N est le nombre maximal de lignes qui pourraient se trouver dans un fichier.

Cette commande divisera le fichier en fichiers plus petits ayant chacun N nombre de lignes.

Utilisez man splitpour plus d'informations.

Tarun
la source
3

Si vous utilisez le fractionnement et créez plusieurs fichiers, votre prochain problème sera de savoir comment utiliser Calc pour manipuler toutes ces données dans tous ces fichiers. Et cela empile un problème sur un autre. Avec 65000 lignes, ce sera 62 (!) Pages.

Vous utilisez simplement le mauvais outil. Utilisez Libreoffice Base ou MySQL pour importer les données, puis utilisez Libreoffice Calc pour effectuer le calcul et / ou la manipulation de ces données.

En ce qui concerne les limites, cela dépend de la version Libreoffice que vous utilisez:

  • pré 3.3.3: la limite est de 65 536 lignes
  • 3.3.3 et versions ultérieures: 1 048 576 lignes (1M)

Si vous le souhaitez, vous pouvez faire des enregistrements de 4 m avec 3.3.3+ avec 4 pages, mais le module de base de LibreOffice peut importer sans presque aucune limite de lignes si cela ne suffit pas. Voici une introduction sur la façon de procéder et voici un exemple de base de données avec un fichier d'importation . La manipulation des données dans Base est simple et rapide.

Rinzwind
la source