If-Koubou

Împărțiți un fișier text în jumătate (sau orice procent) pe Ubuntu Linux

Împărțiți un fișier text în jumătate (sau orice procent) pe Ubuntu Linux (Cum să)

Dacă aveți un fișier text greoi pe care încercați să-l procesați, împărțirea acestuia în secțiuni poate ajuta uneori timpul de procesare, mai ales dacă urma să importem un fișier într-o foaie de calcul. Sau poate doriți să preluați un anumit set de linii dintr-un fișier.

Introduceți împărțit, WC, coadă, pisică și grep. (nu uitați sed și awk). Linux conține un set bogat de utilitare pentru a lucra cu fișiere text pe linia de comandă. Pentru sarcina noastră de azi vom folosi split și WC.

Mai întâi aruncăm o privire la fișierul nostru de jurnal ....

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

Vedem că dimensiunea fișierului este de 42MB. Este cam mare ... dar cu câte linii avem de-a face? Dacă vrem să importăm acest lucru în Excel, ar trebui să păstrăm mai puțin de 65k linii.

Să verificăm numărul de linii din fișier utilizând utilitarul wc, care înseamnă "count word".

> wc -l acces.log
146330 acces.log

Suntem peste limita noastră. Va trebui să împărțim acest lucru în 3 segmente. Vom folosi utilitarul de separare pentru a face asta.

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

total 79124
-rw-rw-r- 1 thegeek grupe 40465200 2006-09-19 12:00 acces.log
-rw-rw-r- 1 thegeek grupe 16598163 2006-09-19 12:05 xaa
-rw-rw-r- 1 thegeek grupei 16596545 2006-09-19 12:05 xab
-rw-rw-r- 1 thegeek grupe 7270492 2006-09-19 12:05 xac

Acum ne-am împărțit fișierele text în 3 fișiere separate, fiecare conținând mai puțin de 60000 de linii, care păreau ca un număr bun de ales. Ultimul fișier conține suma rămasă. Dacă ați fi tăiat acest fișier în jumătate, ați fi făcut acest lucru:

> split -l 73165 acces.log

Și, asta e totul pentru asta.