Утилита командной строки split предназначена для разделения файлов на части. Это может быть полезным если требуется переслать файлы, которые слишком большие для отправки одним сообщением по электронной почте или передачи по сети.
Команда split разделяет файл на части, каждая из которых будет иметь указанный размер. Вы можете указать размер в байтах, килобайтах, мегабайтах и т.д. Кроме того, можно указать префикс для имени каждого файла, чтобы легче было их идентифицировать.
- Синтаксис и опции команды split
- Разбиение файла на части заданного размера
- Разбиение текстового файла по заданному количеству строк
- Разбиение файла на определенное количество файлов
- Разбиение файлов на тома определенного размера
- Другие опции разбиения файла
- Настройка имени частей файла
- Объединение файлов
- Заключение
Синтаксис и опции команды split
Рассмотрим подробнее синтаксис и опции для работы:
1 | $ split [опции] [имя файла] [префикс выходных файлов] |
Список опций:
- -b: Задает размер каждой выходной части в байтах. Например, split -b 100M bigfile.txt разделит файл на части по 100 МБ каждая.
- -l: Маленькая буква (L). Задает количество строк в каждой выходной части. Например, split -l 1000 bigfile.txt разделит файл на части по 1000 строк каждая.
- -d: Добавляет числовой суффикс к каждому выходному файлу вместо буквенного. Например, split -d bigfile.txt создаст файлы с названиями x00, x01, x02 и т.д.
- -a: Задает количество символов в суффиксе выходных файлов (по умолчанию 2). Например, split -a 4 bigfile.txt создаст файлы с названиями x0000, x0001, x0002 и т.д.
- -t: Задает разделитель строк в файле (по умолчанию разделитель — символ перевода строки). Например, split -t «,» data.csv разделит файл с разделителем запятой.
- -С: Указывает размер каждого создаваемого файла в символах.
- —verbose: выводить информацию о новых файлах перед их созданием.
Размер задаётся целым числом и необязательной единицей измерения (пример: 10K это 10*1024). Единицы измерения: K, M, G, T, P, E, Z, Y (степень 1024) или KB, MB, … (степень 1000). Также можно использовать двоичные префиксы: KiB=K, MiB=M и так далее.
Подробную ифнормацию можно получить используя комадну «man split».
Разбиение файла на части заданного размера
Наиболее часто используемая операция, выполняемая командой split, — это разбиение файла на части заданного размера.
Чтобы это сделать используется опция -b (или –bytes), после которой указывается размер каждой части в байтах.
Например, если вы хотите разбить файл bigfile.txt на части по 1 МБ каждая, вы можете использовать следующую команду:
1 | $ split -b 1M bigfile.txt part |
Эта команда создаст несколько файлов в текущей директории, которые будут называться partaa, partab, partac и т. д.
Каждый из этих файлов будет иметь размер 1 МБ (за исключением последнего файла, который может быть меньше, если размер исходного файла не делится нацело на размер части).
Опция -b может принимать и другие значения, такие как k для килобайт, g для гигабайт и т. д.
Кроме того, вы можете использовать опцию -d (или —numeric-suffixes), чтобы использовать числовые суффиксы вместо буквенных при именовании созданных файлов.
1 | $ split -b 1M -d bigfile.txt part |
Эта команда создаст файлы с именами part00, part01, part02 и т. д.. Смотрите скриншот ниже.
Разбиение текстового файла по заданному количеству строк
Можно разбить текстовый файл на части, заданные количеством строк. Для этого необходимо использовать опцию «-l» и указать количество строк в каждой части.
Например, если нужно разбить файл «text.txt» на части по 50 строк каждая, то команда будет выглядеть следующим образом:
1 | $ split -l 50 text.txt |
Эта команда разобьет файл «text.txt» на несколько частей, каждая из которых будет содержать 50 строк текста.
Разбиение файла на определенное количество файлов
Еще одной полезной опцией команды split является «-n», которая позволяет разбить файл на заданное количество частей. Для этого необходимо указать количество нужных частей и имя исходного файла.
Например, если нужно разбить файл «data.txt» на 3 части, то команда будет выглядеть так:
1 | $ split -n 3 data.txt |
Эта команда создаст три файла: «xaa», «xab» и «xac», содержащие равные части исходного файла.
Если исходный файл не делится нацело на заданное количество частей, последний файл будет содержать оставшиеся данные.
Кроме того, опцию «-d» можно использовать для создания файлов с числовыми именами вместо стандартных буквенных имен. Например:
1 | split -n 3 -d data.txt |
Эта команда создаст три файла с именами «x00», «x01» и «x02».
Разбиение файлов на тома определенного размера
Команда split в Linux также может использоваться для разделения больших файлов на тома (части) определенного размера.
Это может быть полезно, например, при копировании больших файлов на внешние носители, которые не поддерживают файлы большого размера.
Для разбиения файла на тома определенного размера используется опция -b (или —bytes), за которой следует размер каждого тома в байтах, килобайтах, мегабайтах, гигабайтах или терабайтах.
Например, чтобы разбить файл file.txt на тома размером 100 МБ каждый, используйте следующую команду:
1 | $ split -b 100M file.txt |
Эта команда разделит файл file.txt на несколько частей, каждая размером 100 МБ, с именами по умолчанию xaa, xab, xac и т.д.. Пример смотрите на скриншоте ниже.
Другие опции разбиения файла
Опция -t в команде split в Linux позволяет указать символ-разделитель, который будет использоваться для разбиения файла на части. Если эту опцию не использовать, по умолчанию будет использоваться символ новой строки.
Например, если вы хотите разбить файл, который содержит данные, разделенные запятыми, на части, можно использовать следующую команду:
1 | $ split -t ',' -b 10M file.csv part |
Эта команда разобьет файл file.csv на части размером 10 МБ каждый, используя запятую в качестве символа-разделителя. Каждую часть будет называться partaa, partab и т.д.
Опция -t очень полезна при работе с файлами, содержащими структурированные данные, такие как таблицы или списки. Она позволяет быстро и легко разбить файл на части, используя правильные символы-разделители.
Однако, важно учитывать, что символ-разделитель должен быть указан точно. Если вы ошибетесь при указании символа-разделителя, команда split не сможет правильно разделить файл.
Опция -C в команде split позволяет задать максимальный размер для каждой части файла в байтах.
Это может быть полезно, когда нужно разбить файл, чтобы записать их на носитель с ограниченным объемом, например, флешку.
Пример использования опции -C:
1 | $ split -C 500M bigfile.txt parts |
В этом примере команда split разобьет файл «bigfile.txt» на части, каждая из которых будет не более 500 МБ. Все части будут сохранены в текущей директории и называться «partsaa», «partsab», «partsac» и т.д.
Обратите внимание, что если файл не может быть разбит на части равного размера, то последняя часть может быть меньше, чем заданный размер.
Также стоит учесть, что опция -C определяет максимальный размер каждой части, но если в файле есть строка, которая превышает этот размер, то она будет разбита на несколько частей.
Опция «-C» команды split позволяет разбивать файлы на части по количеству символов, в то время как опция «-b» разбивает файлы на части по размеру в байтах. Использование опции «-C» будет полезно, если вы хотите разбить текстовый файл на части, чтобы каждая часть содержала определенное количество символов.
Опция «-b» будет полезна, если вы хотите разбить файл на части определенного размера в байтах, например, чтобы подготовить его для копирования на съемный носитель с ограниченной емкостью.
Настройка имени частей файла
По умолчанию команда split называет части разбитого файла xaa, xab, xac и т.д. Однако вы можете настроить имя каждой части, используя опцию -d (или —numeric-suffixes) и формат имени.
Например, чтобы разбить файл file.txt на части размером 100 МБ каждый и назвать их file_001, file_002 и т.д., используйте следующую команду:
1 | $ split -b 100M --numeric-suffixes=1 --suffix-length=3 file.txt file_ |
Эта команда разобьет файл file.txt на части размером 100 МБ каждый, каждую часть назовет в формате file_001, file_002 и т.д.
Опция —numeric-suffixes указывает, что суффикс частей файла должен быть числовым, а опция —suffix-length=3 указывает, что суффикс должен состоять из трех цифр.
Можно также настроить префикс имени частей файла, используя опцию -a (или —suffix-length) и указав желаемую длину префикса.
Рассмотрим пример как разбить файл file.txt на части размером 100 МБ каждый и назвать их part1, part2 и т.д., используйте следующую команду:
1 | $ split -b 100M --numeric-suffixes=1 --suffix-length=1 -a 4 file.txt part |
Эта команда разобьет файл file.txt на части размером 100 МБ каждый, каждую часть назовет в формате part0001, part0002 и т.д.
Опция -a 4 указывает на то, что количество символов в номере части будет равно 4, то есть имена частей будут иметь вид part0001, part0002 и т.д.
Если бы опция -a была равна 3, то имена частей были бы в формате part001, part002 и т.д. Опция -a позволяет настроить количество символов в номере части и обеспечить уникальность имен файлов в случае большого количества частей.
Объединение файлов
Для объединения файлов, разделенных командой split, используется команда cat с опцией -o. Опция -o указывает имя объединенного файла.
Прежде чем объединять файлы, убедитесь, что все они находятся в одной директории и имеют одинаковый префикс.
Например, если файлы называются partaa, partab и partac, то их префиксом является «parta».
Для объединения файлов можно использовать команду:
1 | $ cat parta* > combined_file |
В этой команде «*» используется как символ подстановки для объединения всех файлов, начинающихся с префикса «parta». Знак «>» указывает на то, что результат объединения нужно записать в файл «combined_file».
Если файлы были разделены с помощью опции -b (размер частей файла), то для объединения файлов нужно использовать опцию -d. Эта опция указывает на то, что в именах файлов использовались числовые суффиксы. Например:
1 | $ cat part* -d > combined_file |
В этой команде, * используется как символ подстановки для объединения всех файлов, начинающихся с префикса «part». Опция -d указывает на то, что имена файлов содержат числовые суффиксы.
Также можно объединить файлы, задав их имена вручную. Например:
1 | $ cat part1 part2 part3 > combined_file |
В этой команде, файлы part1, part2 и part3 объединяются в один файл combined_file.
Объединение файлов, разделенных с помощью команды split, позволяет восстановить исходный файл после его разделения на части.
Заключение
Команда split является одной из самых востребованных утилит в Linux для разбиения файлов на части. Она часто используется системными администраторами и разработчиками для разделения больших файлов на более управляемые куски. Кроме того, может быть полезна при отправке больших файлов через электронную почту или передаче файлов через сеть.
В целом, команда split — это мощный инструмент командной строки для разбиения файлов на части в Linux. Он предоставляет много опций и прост в использовании. Утилита полезна для системных администраторов, разработчиков и обычных пользователей, которые нуждаются в разделении больших файлов на более управляемые куски.