Как разбить большие файлы на более мелкие части?
У меня есть большой файл (8 ГБ для примера). Как я могу разделить его на несколько частей, скажем, 3 равные части, и после этого, как я могу интегрировать их позже?
8 ответов
Есть несколько способов сделать это. Давайте начнем с основных.
Используя команды split и cat:
Допустим, у меня есть изображение, и оно слишком большое (10 МБ). Все, что я делаю, это:
split --bytes=1M /path/to/image/image.jpg /path/to/image/prefixForNewImagePieces
и затем, чтобы собрать это вместе, я использую cat:
cat prefixFiles* > newimage.jpg
Например:
Предположим, я нахожусь в папке, где изображение:
split --bytes=1M myimage.jpg new
если изображение находится внутри каталога с именем images, вы также можете сделать это:
split --bytes=1M images/myimage.jpg new
Если изображение находится в каталоге /home/cyrex/images, вы можете сделать это:
split --bytes=1M /home/cyrex/images/myimage.jpg new
(Во всех случаях выше это будет разделено myimage.jpg
в кусочках по 1 МБ и префикс их имени со словом new. Так они будут выглядеть newaa
, newab
, newac
, newad
...)
Если вы разбиваете текстовый файл и хотите разбить его на строки, вы можете сделать это:
split -l 1000 book.txt new
Который будет разбивать текстовый файл на выходные файлы по 1000 строк каждый. Это еще один способ разбить файл и в основном используется для текстовых файлов, таких как журналы, дампы sql, файлы csv и т. Д.
Тогда я объединяю их
cat new* > newimage.jpg
Это один из способов. Вы можете даже изменить размер расколотых частей. Просто измените часть, которая говорит --bytes=1M
в --bytes=1K
за 1 килобайт или 1G за гига, или другое число типа --bytes=4K
за 4КБ шт.
Используя Наутилус
Другим способом является опция сжатия в графическом интерфейсе Nautilus. Это дает вам возможность разбить файл или файлы, которые вы хотите сжать, на меньшие размеры в мегабайтах. Это просто и легко.
Еще один способ использования 7z
Предполагая, что у вас есть ISO образ ubuntu.iso
Вы могли бы сделать это:
7z a -v5m -mx0 ubuntu.7z ubuntu.iso
Это создаст файлы размером 5 МБ из ubuntu.iso
, -v5m
размер тома, поэтому вы можете изменить его на 10, 12, 1, 3, а также m можно изменить на k для килобайт и т. д.; -mx0
switch говорит 7-Zip не использовать сжатие, то есть просто разбивать данные на части.
Чтобы извлечь просто сделать
7z x ubuntu.7z.001
таким образом вы извлекаете первый файл, и 7z начинает извлекать из следующих файлов по порядку. Вы также можете сделать
7z e ubuntu.7z.001
который имеет такой же эффект здесь.
С помощью split -b
с соответствующим номером, вы можете получить три штуки.
Номер может быть:
size=$(wc -c <"file name")
one_third=$((size/3+1))
Для сборки используйте cat
cat "file name"* > "file name"
Страницы руководства помогут заполнить детали.
Гном раскололся? http://gnome-split.org/
GNOME Split - это инструмент, который позволяет разбивать файлы и объединять их обратно. Он написан на Java и использует пользовательский интерфейс GTK+ (благодаря проекту java-gnome). Цель состоит в том, чтобы предложить собственную реализацию похожих проектов, которые могут обрабатывать несколько форматов файлов (например, Xtremsplit).
http://www.omgubuntu.co.uk/2010/08/split-large-files-easily-in-ubuntu-with-gnome-split/
HJSplit
Это популярная бесплатная программа для разделения и рекомбинации файлов. Программа доступна на Windows, Linux и множестве других платформ.
HJSplit для Linux - это бесплатный разветвитель файлов для Linux с полностью графическим пользовательским интерфейсом. HJSplit поддерживает файлы размером более 100 гигабайт, Split, Join/Recombine, контрольные суммы MD5, сравнение файлов, "запуск без установки", и программа полностью переносима.
HJSplit для Linux не нужно устанавливать и не зависит от каких-либо специальных библиотек. Просто распакуйте архив hjsplitlx.tar.gz в каталог по вашему выбору и запустите программу из файлового менеджера Linux или из окна терминала. Возможно, вам придется настроить права доступа к файлу программы на "исполняемый файл".
HOZ - Hacha Open Zource v1.65 - http://hoz.sourceforge.net/
От разработчика:
OZ - это то, что вы бы назвали "разделителем файлов". Его формат файла такой же, как и в программном обеспечении "Hacha", хорошо известном в Испании и Латинской Америке. HOZ - это портативная C-реализация с открытым исходным кодом, совместимая с Hacha.
ХОЗ меньше и быстрее чем "хача".
Кстати, я использовал вместо Z букву "S" в "Zource", потому что "hoz" - это "серп" по-испански, а "hacha" - испанское слово "ax"...
После установки вы можете использовать Hoz GUI, опустив ghoz
в терминале. Операция настолько проста, что не нуждается в объяснении, но дополнительную информацию можно найти на сайте разработчика.
Удачи!
Бесплатная утилита для разделения и объединения файлов, разработанная на Java. Это приложение небольшого размера, которое позволяет пользователю разделить любой тип файла на меньшие размеры в КБ, МБ или ГБ.
Он доступен как для Linux, так и для Windows.
WoodCutter предлагает 3 способа объединения исходных файлов. WoodCutter создает файл слияния, который может быть обработан приложением WoodCutter для объединения всех файлов обратно. В случае, если в приемнике разделенных файлов не установлен WoodCutter, можно также получить исходный файл, поскольку WoodCutter также создает командный файл и файл сценария оболочки для объединения файлов. Пакетный файл будет использоваться на платформе Windows, а сценарий Shell будет использоваться на платформах Linux.
split --number
Это хороший вариант для создания N файлов с одинаковым размером, за исключением последнего, который может быть больше из-за неделимости. Например:
printf '0123456789' > f.txt
split -d --number 2 f.txt f.txt.part.
tail f.txt.part.*
дает:
==> f.txt.part.00 <==
01234
==> f.txt.part.01 <==
56789
а также:
split -d --number 3 f.txt f.txt.part.
tail f.txt.part.*
дает:
==> f.txt.part.00 <==
012
==> f.txt.part.01 <==
345
==> f.txt.part.02 <==
6789
По сравнению с -b
+ явный расчет размера, который упоминался по адресу: /questions/437017/kak-razbit-bolshie-fajlyi-na-bolee-melkie-chasti/437021#437021, последний файл может быть почти в 2 раза больше, чем предыдущие, что иногда является недостатком этой опции. Однако во многих случаях это удобнее, так как вам не нужно самостоятельно вычислять размер.
Равное количество строк было задано по адресу: https://stackoverflow.com/questions/2016894/how-to-split-a-large-text-file-into-smaller-files-with-equal-number-of-lines
Проверено в split
2.28, Ubuntu 18.04.
Извините, что тяну нить в конце 2022 года, но есть более простой способ.
7z можно установить в Wine и использовать для разделения на форматы, совместимые с Fat32, или любые другие желаемые размеры. Перейдите к файлу, нажмите «Разделить» и скопируйте части, снова перейдите к целевым файлам и используйте слияние в самом 7z, и вуаля!