Разделение файлов на части
Команды split и csplit не являются текстовыми фильтрами. Они предназна- чены для разделения файлов на части, которые записываются в другие файлы со специальными именами. Эти файлы образуются в текущем каталоге.
Команда split разделяет содержимое файла на части, которые записываются в отдельные файлы. По умолчанию команда записывает в отдельный файл ка- ждые 1000 строк текста. Имена файлов начинаются со строки префикса и до- полняются символами нумерации, начиная с aa. Если префикс не указан, то используется префикс по умолчанию — символ x, а имена файлов, в которые будут записаны части разделенного файла, будут иметь вид: xaa, xab, xac, ...
Опция -l команды split позволяет указать, сколько строк должно содер- жаться в частях файла (пример 8.49).
Пример 8.49. Команда split |
$ split –l9 /etc/passwd
$ ls x* xaa xab
В примере 8.49 содержимое файла /etc/passwd разделено так, чтобы в час- тях файла содержалось по четыре строки (кроме последнего файла). В ре- зультате выполнения команды исходный файл разделен на два файла — xaa и xab.
Опция -b команды split позволяет указать, сколько байтов должно содер- жаться в частях файла. Так можно разделять на части бинарные файлы. Ко- манда split –b5K разделит файл на части, содержащие по 5 Кбайт кроме, возможно, последней части.
Опция -Cn позволяет записывать в выходные файлы столько целых строк ис- ходного файла, сколько можно записать, так, чтобы размер выходных файлов не превысил n байт. Например, команда split -C1024 разделит файл на час- ти, не превышающие по размеру 1 Кбайт и содержащие целые строки исход- ного текста.
Команда csplit позволяет разделить текстовый файл на часть до строки, со- держащей образец — регулярное выражение, и часть, начиная со строки, со- держащей его. Например, команда csplit /etc/hosts /et/ разделит файл на две части. Первая часть будет содержать все строки до строки, содержа- щей et, а вторая — все остальные строки. Команда csplit именует части ис- ходного файла префиксом xx с нумерацией.
Следует отметить, что команда csplit по умолчанию делит исходный файл на две части при удачном поиске, т. к. прекращает работу сразу после пер- вого вхождения образца. Во второй части исходного файла могут содер- жаться вхождения образца, по которым исходный файл может быть разде- лен далее.
Можно указать число повторов поиска образца в фигурных скобках. Напри- мер, команда csplit file /etc/ {1} повторит поиск регулярного образца один раз. В случае если повторный поиск неудачен, команда csplit заверша- ет свое выполнение с выводом сообщения об ошибке, а все части исходного файла стираются. Опция -k отменят удаление выходных файлов в случае ошибки повторного поиска по регулярному выражению.
Дата добавления: 2015-06-12; просмотров: 671;