Rozdeliť textový súbor na polovicu (alebo akékoľvek percento) na Ubuntu Linux
Ak máte nepríjemný textový súbor, ktorý sa pokúšate spracovať, rozdelenie v sekciách môže niekedy pomôcť spracovať čas, najmä ak by sme chceli importovať súbor do tabuľky. Alebo možno budete chcieť jednoducho načítať konkrétnu sadu riadkov zo súboru.
Zadajte rozdelené, WC, chvost, mačku a grep. (nezabudnite sed a awk). Linux obsahuje bohatú sadu nástrojov na prácu s textovými súbormi na príkazovom riadku. Pre našu úlohu dnes budeme používať split a wc.
Najprv sa pozrieme na súbor denníka ... .
> ls -l
-rw-r-r- 1 thegeek ggroup 42046520 2006-09-19 11:42 prístup.log
Vidíme, že veľkosť súboru je 42 MB. Je to dosť veľké ... ale s koľkými líniami sa zaoberáme? Ak by sme to chceli importovať do programu Excel, mali by sme ho držať menej ako 65k riadkov.
Pozrime sa na počet riadkov v súbore pomocou utility wc, čo znamená "počet slov".
> wc -l access.log
146330 access.log
Sme nad našim limitom. Musíme to rozdeliť na tri segmenty. Na tento účel použijeme nástroj na rozdelenie.
> rozdeliť -l 60000 access.log
> ls -lcelkom 79124
-rw-rw-r- 1 thegeek ggroup 40465200 2006-09-19 12:00 prístup.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 sme rozdelili naše textové súbory do troch samostatných súborov, z ktorých každý obsahoval menej ako 60000 riadkov, čo sa zdalo byť dobrým číslom na výber. Posledný súbor obsahuje zvyšnú sumu. Ak by ste chceli tento súbor zložiť na polovicu, mali by ste to urobiť:
> split -l 73165 prístup.log
A to je všetko, čo je k tomu.