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

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

192
задан 7 December 2011 в 07:12

7 ответов

Существует несколько способов выполнить это. Давайте запустимся с основных.

Используя разделение и команды кошки:

Позволяет говорит, что у меня есть изображение и его слишком большое (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 МБ и префиксе название частей с новым словом. Таким образом, они были бы похожи newaa, newab, newac, newad...)

Если Вы разделяете Текстовый файл и хотите разделить его строками, можно сделать это:

split -l 1000 book.txt new

Который разделит текстовый файл в выходных файлах 1 000 строк каждый. Это - другой способ разделить файл и главным образом используется для текстовых файлов как журналы, sql дампы, файлы CSV, и т.д.

Затем я объединяю их

cat new* > newimage.jpg

Это - один путь. Можно даже изменить размер splitted частей. Просто измените часть, которая говорит --bytes=1M кому: --bytes=1K для 1 килобайта или 1G для giga или другое число как --bytes=4K для частей 4 КБ.

Использование наутилуса

Иначе опция сжатия в gui Наутилуса. Это дает Вам опцию разделить файл или файлы, которые Вы хотите сжать в меньшие размеры мегабайта. Его простое и легкое.

Еще один путь использует 7z

Принятию Вас назвали ISO-образ ubuntu.iso Вы могли сделать это:

7z a -v5m -mx0 ubuntu.7z ubuntu.iso

Это создаст файлы 5 МБ размером из ubuntu.iso. -v5m размер тома, таким образом, можно изменить его на 10, 12, 1, 3, и также m может быть изменен на k для килобайтов и т.д.; -mx0 переключатель говорит С 7 zip не использовать сжатие, то есть, только разделять данные на части.

Для извлечения просто делают

7z x ubuntu.7z.001

этим путем Вы извлекаете первый файл, и 7z начинает извлекать из следующих файлов в порядке. Можно также сделать

7z e ubuntu.7z.001

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

275
ответ дан 22 November 2019 в 22:46

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

Число могло быть:

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

Для повторной сборки используйте кошку

cat "file name"* > "file name"

Страницы руководства помогут заполнить детали.

9
ответ дан 22 November 2019 в 22:46

HJSplit

Популярная бесплатно распространяемая программа должна разделить и повторно объединить файлы. Программа доступна в Windows, Linux и множестве других платформ.

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

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

enter image description here

3
ответ дан 22 November 2019 в 22:46

Gnome разделяется? http://gnome-split.org/

Разделение GNOME является инструментом, который позволяет Вам разделять файлы и объединять их назад. Это записано в Java и использует GTK + пользовательский интерфейс (благодаря проекту гнома Java). Цель состоит в том, чтобы предложить собственную реализацию подобных проектов, которые могут обработать несколько форматов файлов (например, Xtremsplit).

http://www.omgubuntu.co.uk/2010/08/split-large-files-easily-in-ubuntu-with-gnome-split/

3
ответ дан 22 November 2019 в 22:46

HOZ - Hacha Открывают Zource v1.65 - http://hoz.sourceforge.net/

enter image description here

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

OZ - то, что Вы назвали бы 'разделителем файла'. Его формат файла совпадает с тем, используемым программным обеспечением 'Hacha', известным разделителем в Испании и Latinamerica. HOZ является открытым исходным кодом и портативной реализацией C 'Hacha' совместимый разделитель.

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

btw, я использовал 'Z' вместо этого 'S' в 'Zource', потому что 'hoz' является 'серпом' на испанском языке, и так как 'hacha' является испанским словом для 'топора'...

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

Удачи!

2
ответ дан 22 November 2019 в 22:46

WoodCutter

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

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

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

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

0
ответ дан 22 November 2019 в 22:46

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 + явное вычисление размера, которое было упомянуто в: https://askubuntu.com/a/54584/52975, последний файл может быть почти 2x больше, чем предыдущие, который иногда является оборотной стороной к этой опции. Это много раз однако более удобно, так как Вы не должны делать вычисления размера сами.

В равном количестве строк спросили: 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.

-1
ответ дан 22 November 2019 в 22:46

Другие вопросы по тегам:

Похожие вопросы: