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 части.

csplittest13

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

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

csplitfile13{1}

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