Padalinkite tekstinį failą per pusę (arba bet kokį procentą) Ubuntu Linux
Jei turite sunkų tekstinį failą, kurį bandote apdoroti, suskirstymas į skyrius gali kartais padėti apdoroti laiką, ypač jei ketiname importuoti failą į skaičiuoklę. Arba galite tiesiog nuskaityti tam tikrą eilių eilutę iš failo.
Įveskite padalijimą, wc, uodegą, katę ir grep. (Nepamirškite sed ir awk). „Linux“ yra daugybė įrankių, skirtų dirbti su tekstinėmis rinkmenomis komandinėje eilutėje. Šiandien mūsų užduotis bus padalinta ir wc.
Pirmiausia žiūrime į mūsų žurnalo failą ... .
> ls -
-rw-r-r- 1 thegeek ggroup 42046520 2006-09-19 11:42 access.log
Matome, kad failo dydis yra 42 MB. Tai labai didelis ... bet kiek eilučių mes susiduriame? Jei norėjome importuoti šį failą į „Excel“, mums reikės išlaikyti mažiau nei 65 000 linijų.
Patikrinkime failų eilučių kiekį naudojant wc įrankį, kuris reiškia „žodžio skaičių“.
> wc -l access.log
146330 access.log
Mes peržengiame ribą. Turėsime tai padalinti į 3 segmentus. Tam naudosime padalijimo įrankį.
> split -l 60000 access.log
> ls -iš viso 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
Dabar padalijome savo tekstinius failus į 3 atskirus failus, kurių kiekvienoje yra mažiau nei 60000 eilučių, o tai atrodė kaip geras skaičius. Paskutiniame faile yra likutis. Jei ketinate sumažinti šį konkretų failą per pusę, tai atlikote:
> split -l 73165 access.log
Ir viskas, kas joje yra.