csplit

csplit — утилита Unix, предназначенная для разбивки файла на несколько более мелких файлов в зависимости от строк контекста.

csplit [опции] файл арг_1 [... арг_n] 

Команда csplit читает файл и разбивает его на n + 1 частей, определяемых аргументами арг_1 … арг_n. По умолчанию, секции помещаются в файлы с именами xx00, …, xxn; где n не может быть больше 99. Границы получаемых файлов определяются следующим образом: от строки, определяемой аргументом арг_(n−1), до строки арг_n (если n = 1, то определение идёт от начала файла).

Данная команда принимает следующие аргументы:

Опция Название Описание
-s Подавляет вывод количества символов созданных файлов
-k keep files Не удаляет выходные файлы при ошибках
-f prefix Установка иного префикса кроме как xx
-z elide empty files Пропуск пустых выходных файлов
-n digits Использование указанного количество цифр вместо двух

Каждый шаблон может иметь следующий вид:

Конструкция Описание
/регулярное_выражение[+/- смещение]/ Создаётся файл, который начинается с текущей строки и продолжается до строки (не включая ее), содержащей выражение. После регулярного выражения может следовать смещение со знаком плюс или минус.
%регулярное_выражение[+/- смещение]% Аналогичен предыдущему, но для очередной секции файл не создаётся.
номер_строки Копировать в создаваемый файл до следующей строки (не включая её).
{число} Повтор предыдущего шаблон указанное количество раз.
{*} Повтор предыдущего шаблона максимальное количество раз.

Пример использования

[править | править код]

Данная программа разобьёт файл test1 на 3 части.

csplit test1 3 

На выход мы получим размер созданных файлов в байтах и 2 созданных файла: xx00 и xx01.

Чтобы разбить файл на три более мелких файла, можно воспользоваться следующим регулярным выражением:

csplit file1 3 {1} 

После выполнения данной программы мы получим 3 файла.