В некоторых случаях один файл нужно разбить на несколько частей, например, для более удобного хранения или для загрузки в случае слишком большого размера. Проще всего это сделать с помощью утилиты split в терминале Linux.
В данной статье мы расскажем о том, как работает команда split Linux. А затем разберемся с конкретными сценариями использования, например, как разбить файл на части Linux по определенным критериям. А затем рассмотрим как объединить обратно получившиеся части.
Содержание статьи:
Данная команда разбивает один большой файл на несколько маленьких. У неё достаточно понятный синтаксис. Для запуска следует указать опции, путь к большому файлу и путь создания новых файлов с общим префиксом имени:
$ split опции /местоположение/исходного/файла /путь/к/конечной/папке/префикс_имени
Список доступных опций:
В список включены не все опции. Чтобы посмотреть полную информацию, выполните в терминале команду:
man split
Теперь перейдем к практической части статьи и на конкретных примерах посмотрим, как используется команда split Linux для разбивания файлов по размеру, по количеству строк и на заданное количество частей. Заодно мы упомянем нюансы выбора имени для частей файла.
В данном случае поможет опция -b, определяющая максимальный размер конечного файла. За основу возьмем архив в 5.3 Мб, который находится по пути ~/Archives/archive.tar.gz. Его нужно разбить на несколько файлов по 1 Мб, например, чтобы потом переслать по почте. Для удобства зададим ему префикс имени split-archive.part_, а после нижнего подчеркивания будет идти суффикс, обозначающий номер конечного файла. Команда выглядит следующим образом:
split -b 10M ~/Archives/archive.tar.gz ~/Archives/split-archive.part_
Вот как будет выглядеть конечная папка:
Помимо самого архива, в ней есть еще 6 файлов. Вы можете пропустить ввод конечного местоположения и префикса. Тогда файлы автоматически создадутся в текущей папке.
Иногда нужно разбить один текстовый документ на несколько, например, с количеством строк не больше установленного числа. В этом вопросе полезной окажется опция -l. Команда для разбития будет выглядеть следующим образом:
split -l 1000 ~/Logs/log ~/Logs/Split/divided-log_
Возьмем большой log-файл с данными на 219 тысяч строк. Для более удобной работы его нужно разбить на документы по 10 тысяч строк в каждом и поместить во вложенный каталог.
Результат выглядит так:
Еще одна достаточно интересная задача, в решении которой поможет опция -n. Достаточно прописать для неё итоговое количество файлов и запустить команду:
split -n 3 ~/Archives/archive.tar.gz ~/Archives/archive/split-archive.part_
Вот как это выглядит для рассмотренного ранее архива:
Если вы хотите разбить файл на несколько частей, не разделяя строки/записи внутри него, то понадобится модификатор l. Например, для того чтобы разбить файл на три части выполните такую команду:
split -n l/3 ~/Logs/Log ~/Logs/Split/divided-log_
Как мы уже писали ранее, для команды split префикс определяет название части файла. А после него по умолчанию идет суффикс из двух латинских букв. С помощью дополнительных опций можно изменить его длину (опция -a), переключиться на числа (опция -d) или hex-символы (опция -x). В последних двух сценариях получится выбрать начальную точку отчета (опция —numeric-suffixes для чисел и —hex-suffixes для hex-символов).
Возьмем такую задачу – разделить текстовый документ на 3 файла равного размера, чтобы каждый из них имел префикс split-text.part_ и числовой суффикс из одного символа, начиная с единицы:
split -a 1 --numeric-suffixes=1 -n 3 ~/Docs/text ~/Docs/Split/split-text.part_
Теперь вы знаете как разбить файл на части в Linux с помощью команды split. Следующий шаг – объединение нескольких частей в единый файл. Для этих целей отлично подойдет утилита cat. Сначала нужно задать имена самых частей, а потом итоговый файл:
$ cat /путь/к/1/части /путь/ко/2/части … > /местоположение/объединенного/файла
Поскольку все части имеют схожее имя, и различается только суффикс, можно упростить команду до такого вида:
cat ~/Archive/split-archive.part_* > ~/Archives/cat-archive.tar.gz
Рассмотрим объединение ранее разбитого на части архива.
Утилита split в некоторых ситуациях окажется очень полезной. Она позволяет разбить один большой файл на несколько маленьких, указав при этом определенные критерии разделения. Мы рассмотрели несколько популярных сценариев для её использования. Но на деле их гораздо больше. Разбитый файл можно объединить, например, с помощью утилиты cat. Мы упомянули ее ближе к концу статьи.
Источник: https://losst.ru/ Материал распространяется под лицензией CC-BY-SA
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies