Główna » jak » Podziel plik tekstowy na połowę (lub dowolny procent) na Ubuntu Linux

    Podziel plik tekstowy na połowę (lub dowolny procent) na Ubuntu Linux

    Jeśli masz niepoprawny plik tekstowy, który próbujesz przetworzyć, podzielenie go na sekcje może czasami pomóc w czasie przetwarzania, zwłaszcza jeśli chcemy zaimportować plik do arkusza kalkulacyjnego. Lub możesz po prostu pobrać określony zestaw linii z pliku.

    Wpisz split, wc, tail, cat i grep. (nie zapomnij o sed i awk). Linux zawiera bogaty zestaw narzędzi do pracy z plikami tekstowymi w wierszu poleceń. Do dzisiejszego zadania wykorzystamy split i wc.

    Najpierw spójrz na nasz plik dziennika ... .

    > ls -l
    -rw-r-r-1 thegeek ggroup 42046520 2006-09-19 11:42 access.log

    Widzimy, że rozmiar pliku wynosi 42 MB. To dość duże ... ale z jakimi liniami mamy do czynienia? Jeśli chcielibyśmy zaimportować to do programu Excel, musielibyśmy zachować go poniżej 65 tys. Wierszy.

    Sprawdźmy liczbę linii w pliku za pomocą narzędzia wc, które oznacza "liczbę słów".

    > wc -l access.log
    146330 access.log

    Przekraczamy nasz limit. Będziemy musieli podzielić to na 3 segmenty. W tym celu użyjemy narzędzia podziału.

    > split -l 60000 access.log
    > ls -l

    łącznie 79124
    -rw-rw-r-1 thegeek ggroup 40465200 2006-09-19 12:00 access.log
    -rw-rw-r-1 thegeek ggroup 16598163 2006-09-19 12:05 xaa
    -rw-rw-r-1 thegeek ggroup 16596545 2006-09-19 12:05 xab
    -rw-rw-r-1 thegeek ggroup 7270492 2006-09-19 12:05 xac

    Teraz podzieliliśmy nasze pliki tekstowe na 3 osobne pliki, z których każdy zawiera mniej niż 60000 linii, co wydawało się dobrą liczbą do wyboru. Ostatni plik zawiera pozostałą część. Jeśli chcesz wyciąć ten plik na pół, zrobiłbyś to:

    > split -l 73165 access.log

    I to wszystko.