我有一个大文件(例如 8GB)。如何将其拆分成多个部分,比如说 3 个相等的部分,然后如何将它们合并?
答案1
有几种方法可以实现这一点。让我们从最基本的方法开始。
使用分裂和猫命令:
假设我有一张图片,但它太大了(10MB)。我所做的就是:
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
(在上述所有情况下,它将分成1MBmyimage.jpg
大小的块,并在块的名称前加上单词 new。因此它们看起来像newaa
,,,... )newab
newac
newad
如果你要拆分文本文件并且想要按行拆分,您可以这样做:
split -l 1000 book.txt new
这会将文本文件拆分为每行 1000 行的输出文件。这是拆分文件的另一种方法,主要用于日志、sql 转储、csv 文件等文本文件。
然后我合并它们
cat new* > newimage.jpg
这是一种方法。您甚至可以更改分割片段的大小。只需将表示为 1 千字节或 1G 的部分更改--bytes=1M
为--bytes=1K
千兆,或者将表示--bytes=4K
为 4KB 片段的其他数字更改为其他数字即可。
使用鹦鹉螺
另一种方法是 Nautilus 的 GUI 中的压缩选项。它为您提供了将要压缩的文件分割成更小兆字节大小的选项。它简单又容易。
另一种方法是使用7z
假设您有一个名为的 ISO 映像,ubuntu.iso
您可以执行以下操作:
7z a -v5m -mx0 ubuntu.7z ubuntu.iso
这将从中创建 5MB 大小的文件ubuntu.iso
。-v5m
是卷大小,因此您可以将其更改为 10、12、1、3,也可以将 m 更改为 k(表示千字节)等;开关-mx0
告诉 7-Zip 不使用压缩,即仅将数据拆分成几部分。
要提取只需这样做
7z x ubuntu.7z.001
这样,您提取第一个文件,然后 7z 按顺序开始提取后续文件。您也可以这样做
7z e ubuntu.7z.001
在这里有同样的效果。
答案2
与适当的数字一起使用split -b
,您可以获得三件。
数字可能是:
size=$(wc -c <"file name")
one_third=$((size/3+1))
要重新组装,请使用 cat
cat "file name"* > "file name"
手册页将有助于填写详细信息。
答案3
GNOME Split 是一款允许您分割文件并将它们合并的工具。它用 Java 编写,使用 GTK+ 用户界面(得益于 java-gnome 项目)。其目标是提供类似项目的本地实现,可以处理多种文件格式(例如 Xtremsplit)。
http://www.omgubuntu.co.uk/2010/08/split-large-files-easily-in-ubuntu-with-gnome-split/
答案4
用 Java 开发的免费文件分割和合并实用程序。它是一款小型应用程序,允许用户将任何类型的文件分割成较小的文件(以 KB、MB 或 GB 为单位)。
它适用于 Linux 和 Windows。
WoodCutter 提供 3 种合并回原始文件的方法。WoodCutter 会创建一个合并文件,WoodCutter 应用程序可以处理该文件以将所有文件合并回原处。如果分割文件的接收方未安装 WoodCutter,那么也可以获取原始文件,因为 WoodCutter 还会创建一个批处理文件和一个 Shell 脚本文件来合并回文件。批处理文件将在 Windows 平台上使用,而 Shell 脚本将在 Linux 平台上使用。