Разделить текстовый файл пополам (или любым процентом) на Ubuntu Linux

Разделить текстовый файл пополам (или любым процентом) на Ubuntu Linux
Разделить текстовый файл пополам (или любым процентом) на Ubuntu Linux

Видео: Разделить текстовый файл пополам (или любым процентом) на Ubuntu Linux

Видео: Разделить текстовый файл пополам (или любым процентом) на Ubuntu Linux
Видео: ПУБЛИКАЦИЯ .NET CORE ПРИЛОЖЕНИЯ! Немного DevOps – настройка Visual Studio для релиза на VPS с Linux - YouTube 2024, Май
Anonim

Если у вас есть громоздкий текстовый файл, который вы пытаетесь обработать, разделение его на разделы иногда может помочь время обработки, особенно если мы собираемся импортировать файл в электронную таблицу. Или вы можете просто получить определенный набор строк из файла.

Введите split, wc, tail, cat и grep. (не забудьте sed и awk). Linux содержит богатый набор утилит для работы с текстовыми файлами в командной строке. Для нашей задачи сегодня мы будем использовать split и wc.

Сначала мы посмотрим на наш файл журнала ….

> ls -l -rw-r–r– 1 thegeek ggroup 42046520 2006-09-19 11:42 access.log

Мы видим, что размер файла составляет 42 МБ. Это немного … но сколько строк мы имеем в виду? Если бы мы хотели импортировать это в Excel, нам нужно было бы держать его менее 65 тыс. Строк.

Давайте проверим количество строк в файле с помощью утилиты wc, которая означает «количество слов».

> wc -l access.log 146330 access.log

Мы преодолели наш предел. Нам нужно разбить это на 3 сегмента. Для этого мы будем использовать утилиту split.

> 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

Теперь мы разделили наши текстовые файлы на 3 отдельных файла, каждый из которых содержит менее 60000 строк, что показалось хорошим выбором. Последний файл содержит оставшуюся сумму. Если вы собираетесь сократить этот конкретный файл пополам, вы бы сделали это:

> split -l 73165 access.log

И это все, что нужно.

Рекомендуемые: