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