If-Koubou

Podijelite tekstualnu datoteku na pola (ili bilo koji postotak) na Ubuntu Linuxu

Podijelite tekstualnu datoteku na pola (ili bilo koji postotak) na Ubuntu Linuxu (Kako da)

Ako imate nepristojnu tekstualnu datoteku koju pokušavate obraditi, dijeljenje u odjeljcima može ponekad pomoći u obradi vremena, posebno ako ćemo uvesti datoteku u proračunsku tablicu. Ili biste možda htjeli preuzeti određeni niz redaka iz datoteke.

Unesite split, WC, rep, mačka i grep. (ne zaboravite sed i awk). Linux sadrži bogat set alata za rad s tekstualnim datotekama na naredbenom retku. Za naš zadatak danas ćemo koristiti split i wc.

Prvo ćemo pogledati našu log datoteku ....

> 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 velika ... ali koliko redaka s kojima se bavimo? Ako bismo to htjeli uvesti u Excel, trebali bismo ga zadržati manje od 65 k redaka.

Provjerimo količinu redaka u datoteci pomoću wc uslužnog programa, što znači "broj riječi".

> wc -l access.log
146330 access.log

Previše smo granica. Morat ćemo podijeliti ovo u 3 segmenta. Koristit ćemo uslužni program Split za to.

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

ukupno 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 tekstne datoteke u 3 zasebne datoteke, od kojih svaka sadrži manje od 60000 redaka, što je izgledalo kao dobar broj za odabir. Posljednja datoteka sadrži preostali iznos. Ako biste htjeli izrezati ovu datoteku na pola, to biste učinili:

> split -l 73165 access.log

I, to je sve.