Ако имате труден текстов файл, който се опитвате да обработите, разделянето му на части може понякога да помогне за обработването на време, особено ако щяхме да импортираме файл в електронна таблица. Или може да искате просто да изтеглите определен набор от линии от файл.
Въведете разделена, WC, опашка, котка и греп. (не забравяйте sed и awk). Linux съдържа богат набор от помощни програми за работа с текстови файлове на командния ред. За нашата задача днес ще използваме сплит и тоалетна.
Първо погледнете нашия регистрационен файл ….
> ls -l -rw-r–r– 1 thegeek ggroup 42046520 2006-09-19 11:42 access.log
Виждаме, че размерът на файла е 42 МБ. Това е доста голямо … но колко линии имаме? Ако искахме да внесем това в Excel, ще трябва да го запазим по-малко от 65k линии.
Нека проверим количеството линии във файла, използвайки помощната програма на wc, която означава "брой думи".
> wc -l access.log 146330 access.log
Ние сме над нашия лимит. Ще трябва да разделим това на три сегмента. Ще използваме програмата за разделяне, за да направим това.
> split -l 60000 access.log > ls -l
total 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
Разделихме текстовите ни файлове на три отделни файла, всеки от които съдържа по-малко от 60000 реда, което изглеждаше като добър номер, който да изберем. Последният файл съдържа остатъка. Ако щяхте да отрежете този файл наполовина, щяхте да направите това:
> split -l 73165 access.log
И това е всичко, което има.