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

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

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

    Введите 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

    всего 79124
    -rw-rw-r- 1 thegeek ggroup 40465200 2006-09-19 12:00 access.log
    -rw-rw-r- 1 группа thegeek 16598163 2006-09-19 12:05 xaa
    -rw-rw-r- 1 группа thegeek 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

    И это все, что нужно сделать.