НАЗВАНИЕ
csplit - разбиение файла на части по контексту
СИНТАКСИС
csplit [-s] [-k] [-f префикс] файл арг1 [... аргn]
ОПИСАНИЕ
Команда csplit читает файл и разбивает его на (n+1)
частей (секций), определяемых аргументами арг1,...,
аргn. По умолчанию, секции помещаются в файлы с именами
xx00,..., xxn; n не может быть больше 99. Границы секций определяются следующим образом:
00 От начала файла до строки (не включая ее), указываемой аргументом арг1.
01 От строки, указываемой аргументом арг1, до строки, указываемой аргументом арг2.
.
.
.
n От строки, указываемой аргументом аргn, до конца файла.
Если вместо имени файла указан -, используется стандартный ввод.
Опции команды csplit таковы:
Аргументы команды csplit (арг1,...,аргn) могут быть комбинацией следующих конструкций:
Заключайте в кавычки все аргументы типа выражение, которые содержат пробелы или другие символы, имеющие значение для интерпретатора команд shell. Выражение не может содержать символ перевода строки. Команда csplit не изменяет исходный файл; удаление исходного файла возлагается на пользователя.
ПРИМЕРЫ
csplit -f cobol f1 '/procedure division/' \ /par5./ /par6./В результате выполнения этой команды создаются четыре файла: cobol00,...,cobol03. После того, как полученные файлы будут отредактированы, их можно об единить командой
cat cobol0[0-3] > f1Заметим, что команды этого примера перезаписывают исходный файл f1.
csplit -k f2 100 {99}разбивает файл f2 через каждые 100 строк до 10000-ой строки. Указание опции -k гарантирует сохранение созданных файлов, если исходный файл содержит менее 10000 строк (однако сообщение об ошибке все равно будет выдано).
csplit -k prog.c '%main(%' '/^}/+1' {20}Если предположить, что в программе prog.c все функции заканчиваются правой фигурной скобкой }, стоящей в начале строки, то команда этого примера помещает все функции (не более 21) в отдельные файлы.
СМ. ТАКЖЕ
ed(1), fsplit(1), sh(1), split(1).
regexp(5) в Справочнике программиста.
ДИАГНОСТИКА
Самоочевидна, за исключением сообщения:
аргумент - out of range
которое означает, что заданный аргумент не указывает на строку, находящуюся между текущей и последней строками файла.