Вопрос: Как разделить большие файлы на более мелкие части?


У меня большой файл (8GB для примера). Как я могу разделить его на несколько частей, скажем, на 3 равные части, а после этого как их интегрировать позже?


161
2017-07-26 14:42


Источник


Кажется, это дубликат askubuntu.com/questions/12172/... - Jo-Erlend Schinstad
Вы уверены, что «Это похоже» ?. Черт, это то же самое. За исключением здесь, теперь с бонусом «Больше примеров и альтернатив». - Luis Alvarado♦
Это может помочь, если вы скажете больше о том, почему вы хотите разбить его, и хотите ли вы, чтобы он разбивался только на байтовые подстроки или был ли вы открыт для их обертывания при любой проверке или маркировке ошибок. Если это нужно разместить на небольших носителях или для сетевых передач, я бы посмотрел на что-то вроде par2, - poolie
cross ref: stackoverflow.com/questions/7764755/... - Trevor Boyd Smith
один лайнер для равнорасщепления по N: (1.), разбитый на строки split --lines $ (($ (wc -l <$ {your_filename}) / $ {N})) $ {your_filename} (2.) байты split --bytes $ (($ (wc -c <$ {your_filename}) / $ {N})) $ {your_filename} - Trevor Boyd Smith


Ответы:


Это можно сделать несколькими способами. Начнем с основных.

Используя Трещина а также Кот команды:

Позволяет сказать, что у меня есть изображение и его слишком большой (10 МБ). Все, что я делаю, это:

split --bytes=1M /path/to/image/image.jpg /path/to/image/prefixForNewImagePieces

а затем, чтобы собрать его, я использую кошку:

cat prefixFiles* > newimage.jpg

Например:

Предположим, что я внутри папки, где находится изображение:

split --bytes=1M myimage.jpg new

если изображение находится внутри каталога с изображениями, вы также можете сделать это:

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 для 4KB штук.

С помощью кораблик

Другим способом является опция сжатия в gui 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

который имеет такой же эффект здесь.


240
2017-07-26 15:05



Не включил rar, так как пока не является открытым исходным кодом (насколько я знаю) и не добавил Tar, так как я искал простые способы сделать раскол. - Luis Alvarado♦
Добавить gzip также - 7zip требует установки пакета iirc - Broam
Для того, что я знаю, Gzip (например, tar) не имеет простой возможности разбить сжатый файл. Во всех случаях я видел, как они использовали команду split для разделения файла сжима. Таким образом, это не будет команда, а команда команд для достижения единственной цели, которая может быть выполнена с помощью одного, такого как split или 7z. Для установки 7Zip (который является p7zip пакета p7zip-full) он никогда не спрашивал меня об iirc;). - Luis Alvarado♦
Добавлено разделение текстовых файлов. Забыл об этом, и сегодня это так случилось, мне нужно было разбить пару файлов CSV. Это для тех дамп, которые вам нужны для определенного количества линий. - Luis Alvarado♦


С помощью split -b с соответствующим номером вы можете получить три части.

Номер может быть:

size=$(wc -c <"file name")
one_third=$((size/3+1))

Чтобы собрать, используйте кошку

cat "file name"* > "file name"

Ручные страницы помогут заполнить детали.


9
2017-07-26 14:58





HJSplit

Является популярной бесплатной программой для разделения и рекомбинации файлов. Программа доступна в Windows, Linux и других платформах.

HJSplit для Linux - это бесплатный файловый сплиттер для Linux с полным графическим интерфейсом пользователя. HJSplit поддерживает размер файлов более 100 гигабайт, разделение, объединение / рекомбинация, контрольные суммы MD5, сравнение файлов, «запуск без установки», и программа полностью переносима.

HJSplit для Linux не нужно устанавливать и не зависит от каких-либо специальных библиотек. Просто извлеките архив hjsplitlx.tar.gz в каталог по вашему выбору и запустите программу из файлового менеджера Linux или окна терминала. Возможно, вам придется настроить права доступа к файлам программы на «исполняемый файл».

enter image description here


4
2017-07-26 14:53



Должен ли я сказать, что файл Windows действительно работает и с Linux. - Uri Herrera
Существует несколько способов разделения / присоединения файла перед тем, как перейти к такой программе. Я скорее использую мощные опции, предлагаемые linux, и для разделения / слияния файлов у него есть довольно быстрые и безопасные способы сделать это. - Luis Alvarado♦
Это безопасно, быстро, и это кросс-платформенный, который включает LINUX, это не приложение WINDOWS, которое просто запускается в Linux тоже ... - Uri Herrera
Я использую HJSplit, это здорово и просто. Не нужно вводить команды и имена параметров, когда вы можете просто заполнить значения параметров в текстовых полях. - Matthew Read
И быть бесплатной загрузкой делает ее хуже, потому что? и я должен сказать, что NOWHERE в OP HE ASKS ДЛЯ БЕСПЛАТНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ (что это, это бесплатно), и что вы имеете в виду, называется OPEN, есть разница, которую вы знаете? - Uri Herrera


Разделение Гнома? 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/


4
2017-07-26 20:47





HOZ - Hacha Open Zource v1.65 - http://hoz.sourceforge.net/

enter image description here

От разработчика:

OZ - это то, что вы назвали бы «файловым сплиттером». Его формат файла   так же, как тот, который используется программным обеспечением «Hacha», хорошо известным сплиттером в   Испании и Латинской Америки. HOZ является открытым исходным кодом и портативным C   внедрение совместимого сплитера «Hacha».

HOZ меньше и быстрее, чем «Hacha».

Кстати, я использовал «Z» isntead из «S» в «Zource», потому что «hoz»   «серп» на испанском языке, а так как «хача» - испанское слово для   «Топор» ...

После установки вы можете использовать Hoz GUI, сбросив ghoz в терминале. Операция настолько проста, что не нуждается в объяснениях, но дополнительная информация может быть достигнута на сайте разработчика.

Удачи!


3
2017-07-26 15:09





дровосек

В Java реализована бесплатная утилита для разделения файлов и слияния. Это приложение небольшого размера, которое позволяет пользователю разбивать файлы любого типа меньшими размерами в КБ, МБ или ГБ.

Он доступен как для Linux, так и для Windows.

WoodCutter предлагает 3 способа слияния исходных файлов. WoodCutter создает файл слияния, который может быть обработан приложением WoodCutter для присоединения всех файлов назад. Если у получателя разделенных файлов нет установленного WoodCutter, то также можно получить исходный файл, так как WoodCutter также создает пакетный файл и файл сценария оболочки для объединения файлов обратно. Командный файл будет использоваться в платформе Windows, а сценарий Shell будет использоваться на платформах Linux.

http://java-puzzle.blogspot.com/2009/07/woodcutter.html


0
2017-07-28 14:49



Лицензия «бесплатная». Я считаю, что инструмент свободного программного обеспечения, который находится в репозиториях, является лучшим решением. - Broam