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

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

Есть несколько способов добиться этого. Давайте начнем с основных из них.

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

Допустим, у меня есть изображение, и оно слишком большое (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 переключатель сообщает 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/

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

enter image description here

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

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

ХОЗ меньше и быстрее, чем "Хача".

кстати, я использовал "Z" вместо "S" в "Zource", потому что "hoz" - это "серп" по-испански, и поскольку "hacha" - это испанское слово, обозначающее "топор"...

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

Удачи!

Дровосек

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

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

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

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

split --number

Это хороший вариант для создания N файлов одинакового размера, за исключением последнего, который может быть больше из-за неделимости. Например.:

printf '0123456789' > f.txtsplit -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 , последний файл может быть почти в 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.

Это, по-видимому, дубликат command line - Split a large file into smaller files and then integrate them to get the original file - Ask Ubuntu

Вы уверены, что “Это кажется”?. Черт возьми, это одно и то же. За исключением того, что здесь теперь есть бонус в виде “Дополнительных примеров и альтернатив”.

Это может помочь, если вы расскажете больше о том, почему вы хотите разделить его, и хотите ли вы, чтобы он был разделен только на байтовые подстроки, или вы готовы использовать их для любой проверки ошибок или маркировки. Если это делается для того, чтобы поместить его на небольшие носители или для передачи по сети, я бы посмотрел на что-то вроде par2.

перекрестная ссылка: bash - How to split a file into equal parts, without breaking individual lines? - Stack Overflow

одна строка для разделения поровну на N: (1.) разделить по строкам разделить --строки $(( $(wc -l < ${your_filename}) / ${N})) ${your_filename} (2.) разделить на байты разделить --байты $(( $(wc -c < ${your_filename}) / ${N})) ${your_filename}

По теме: Разбейте большой файл на более мелкие части.