Polecenie podzielenia pliku tekstowego zgodnie z liczbą wierszy

16

Sytuacja:

Mam plik tekstowy o rozmiarze około 1,5 GB zawierający około 4000000linii.

Chcę to zaimportować do Libreoffice calci, ponieważ wiesz, że nie możesz zaimportować tego ogromnego pliku z dużą liczbą linii (myślę, że maksymalna to 65000 linii).

W każdym razie potrzebuję prostej komendy, która może podzielić ten plik na mniejsze pliki z liczbą linii w każdym pliku <65000 linii.

Maythux
źródło
@hakermania: gotowe.
Tarun

Odpowiedzi:

19

Możesz użyć splitpolecenia:

split -l N /path-to-file

Gdzie N to maksymalna liczba wierszy, które mogą znajdować się w pliku.

To polecenie podzieli plik na mniejsze pliki, każdy z N liczbą wierszy.

Użyj, man splitaby uzyskać więcej informacji.

Tarun
źródło
3

Jeśli użyjesz podziału i utworzysz wiele plików, następnym problemem będzie korzystanie z Calc do manipulowania wszystkimi tymi danymi we wszystkich tych plikach. I to nakłada jeden problem na drugi. Przy 65000 liniach będzie to 62 (!) Stron.

Po prostu używasz niewłaściwego narzędzia. Użyj Libreoffice Base lub MySQL do zaimportowania danych, a następnie użyj Libreoffice Calc do wykonania obliczeń i / lub manipulacji na tych danych.

Jeśli chodzi o limity, zależy to od używanej Libreofficeversion:

  • przed 3.3.3: limit to 65 536 wierszy
  • 3.3.3 i nowsze: 1 048 576 wierszy (1M)

Jeśli chcesz, możesz nagrywać 4 miliony rekordów w 3.3.3+ na 4 stronach, ale moduł podstawowy LibreOffice może importować prawie bez limitu wierszy, jeśli to nie wystarczy. Oto wprowadzenie, jak to zrobić, a oto przykładowa baza danych z plikiem importu . Manipulowanie danymi w bazie jest łatwe i szybkie.

Rinzwind
źródło