If-Koubou

Разделете текстови файл на половината (или на някакъв процент) на Ubuntu Linux

Разделете текстови файл на половината (или на някакъв процент) на Ubuntu Linux (Как да)

Ако имате труден текстов файл, който се опитвате да обработите, разделянето му на части може понякога да помогне за обработването на време, особено ако щяхме да импортираме файл в електронна таблица. Или може да искате просто да изтеглите определен набор от линии от файл.

Въведете разделена, 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

Ние сме над нашия лимит. Ще трябва да разделим това на три сегмента. Ще използваме програмата за разделяне, за да направим това.

> разделяне-l 60000 access.log
> ls -l

общо 79124
-rw-rw-r- 1 thegeek ggroup 40465200 2006-09-19 12:00 ч. access.log
-rw-rw-r- 1 thegeek ggroup xxx
-rw-rw-r-1 thegeek ggroup 16.096545 2006-09-19 12:05 xab
-rw-rw-r- 1 thegeek ggroup 7270492 2006-09-19 12:05 xac

Разделихме текстовите ни файлове на три отделни файла, всеки от които съдържа по-малко от 60000 реда, което изглеждаше като добър номер, който да изберем. Последният файл съдържа остатъка. Ако щяхте да отрежете този файл наполовина, щяхте да направите това:

> разделяне -l 73165 access.log

И това е всичко, което има.