Početna » kako da » Podijelite tekstualnu datoteku na pola (ili bilo koji postotak) na Ubuntu Linuxu

    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 -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 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.