If-Koubou

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

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

Jeśli masz nieprzyjemny 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ć konkretny 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 linii poleceń. Do dzisiejszego zadania wykorzystamy split i wc.

Najpierw przyjrzymy się naszemu plikowi logów ....

> 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? Gdybyśmy chcieli zaimportować to do Excela, musielibyśmy zachować mniej niż 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 oddzielne 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.