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.