Podijelite tekstualnu datoteku na pola (ili bilo koji postotak) na Ubuntu Linuxu
Ako imate nezgrapnu tekstualnu datoteku koju pokušavate obraditi, dijeljenje u odjeljcima ponekad može pomoći u obradi vremena, pogotovo ako ćemo uvesti datoteku u proračunsku tablicu. Ili možda želite samo dohvatiti određeni skup linija iz datoteke.
Unesite split, wc, rep, cat i grep. (ne zaboravite sed i awk). Linux sadrži bogat skup uslužnih programa za rad s tekstualnim datotekama u naredbenom retku. Za današnji zadatak koristit ćemo split i wc.
Najprije pogledamo našu datoteku dnevnika ... .
> ls -l
-rw-r-r- 1 thegeek ggroup 42046520 2006-09-19 11:42 access.log
Vidimo da je veličina datoteke 42 MB. To je nekako veliko… ali s koliko redaka imamo posla? Ako bismo htjeli uvesti ovo u Excel, morali bismo ga zadržati manje od 65.000 redaka.
Provjerite količinu redaka u datoteci pomoću uslužnog programa wc, koji označava "count count".
> wc -l access.log
146330 access.log
Mi smo daleko iznad našeg ograničenja. Morat ćemo to podijeliti na 3 segmenta. Za to ćemo koristiti uslužni program split.
> split -l 60000 access.log
> ls -lukupno 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
Sada smo podijelili tekstualne datoteke u 3 odvojene datoteke, od kojih svaka sadrži manje od 60000 redaka, što se činilo dobrim brojem za odabir. Posljednja datoteka sadrži ostatak. Ako ste namjeravali prepoloviti tu datoteku, učinili biste to:
> split -l 73165 access.log
I to je sve.