Rozdělit textový soubor na polovinu (nebo jakékoliv procento) na Ubuntu Linux
Máte-li obtížný textový soubor, který se pokoušíte zpracovat, rozdělení v částech může někdy pomoci zpracování času, zvláště pokud budeme importovat soubor do tabulky. Nebo můžete chtít pouze získat konkrétní soubor řádků ze souboru.
Zadejte rozdělení, WC, ocas, kočku a grep. (nezapomeňte sed a awk). Linux obsahuje bohatou sadu nástrojů pro práci s textovými soubory na příkazovém řádku. Pro náš úkol dnes použijeme split a WC.
Nejprve se podíváme na náš protokolový soubor ... .
> ls -l
-rw-r-r- 1 thegeek ggroup 42046520 2006-09-19 11:42 access.log
Vidíme, že velikost souboru je 42 MB. To je docela velké ... ale kolik řádků se zabýváme? Pokud bychom to chtěli importovat do aplikace Excel, museli bychom ji udržet méně než 65k řádků.
Zkontrolujte množství řádků v souboru pomocí utility wc, což znamená "počet slov".
> wc -l access.log
146330 access.log
Jdeme nad náš limit. Musíme to rozdělit na 3 segmenty. Pro tento účel použijeme rozdělovací nástroj.
> rozdělit -l 60000 access.log
> ls -lcelkem 79124
-rw-rw-r- 1 thegeek ggroup 40465200 2006-09-19 12:00 pří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
Nyní rozdělilame naše textové soubory na 3 samostatné soubory, z nichž každý obsahoval méně než 60000 řádků, což se zdálo jako dobrý výběr. Poslední soubor obsahuje zbývající částku. Pokud jste chtěli snížit tento soubor na polovinu, měli byste to udělat:
> rozdělit -l 73165 access.log
A to je vše, co je k tomu.