如何在 Linux 中将文件分割成多个部分如何在 Linux 中将文件分割成多个部分如何在 Linux 中将文件分割成多个部分如何在 Linux 中将文件分割成多个部分
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 中将文件分割成多个部分

本教程介绍了如何在 Linux 中轻松地将文件按大小、多个文件、内容和更多选项拆分为多个部分。阅读本文后,您将了解如何使用 split 和 csplit 命令来拆分文件以及如何合并或连接文件片段。

如何在Linux中按大小分割文件:

对于本教程的第一个示例,我将使用名为 WIN10X64.ISO 的 5GB Windows ISO 映像。要了解要拆分的文件大小,可以使用 du -h 命令,如下面的屏幕截图所示。

du -h <FileName>

如您所见,文件大小为 5GB。要将其拆分为 5 个文件,每个文件大小为 1GB,您可以使用 split 命令,后跟 -b 标志以及您想要的分割文件大小。定义 GB 大小单位的 G 可以替换为 M(表示兆字节)或 B 代表字节。

split -b 1G WIN10X64PRO.ISO

正如您所看到的,ISO 被分为 5 个文件,分别名为 xaa、xab、xac、xad 和 xae。

默认情况下,split 命令命名上一示例中生成的文件,其中 xaa 是第一部分,xab 是第二部分, xac 第三个,等等。如下面的示例所示,您可以更改它并定义一个名称,保留默认名称作为扩展名。

split -b 1G WIN10X64PRO.ISO Windows.

正如你所看到的,所有文件都被命名为 Windows.* ,这是 split 命令给出的名称的扩展名,这使我们能够知道文件的顺序。

使用 split 命令时,您可以为打印进度的命令实现详细程度,如下面的屏幕截图所示。

split --verbose -b 1G WIN10X64PRO.ISO Windows.

正如你所看到的,进度输出显示了文件分割的阶段。下一个示例显示如何将文件拆分为 MB 单位。该文件是一个 85MB 的文件。

split --verbose -b 20M virtualbox.deb virtualbox.deb.

split 命令包括本教程中未解释的其他有趣功能。您可以在 https://man7.org/linux/man-pages/man1/split.1.html 获取有关 split 命令的更多信息。

如何在 Linux 中使用 csplit 按内容分割文件:

在某些情况下,用户可能希望根据文件的内容分割文件。对于这种情况,前面解释的 split 命令没有用。实现此目的的替代方法是使用 csplit 命令。

在本教程部分中,您将学习如何在每次找到特定正则表达式时分割文件。我们将使用一本书,并将其分为几章。

如下图所示,我们有 4 个章节(它们经过编辑以便您可以看到章节划分)。假设您希望将每一章放入不同的文件中。为此,我们将使用的正则表达式是“Chapter”。

我知道这本书有 4 章,所以我们需要指定我们想要防止错误的拆分数量。在下面的示例中,我解释了如何在不知道正则表达式或拆分数量的情况下进行拆分。但在本例中,我们知道有 4 章;因此,我们需要将文件分割3次。

运行 csplit,后跟要拆分的文件、斜杠之间的正则表达式以及大括号之间的拆分数量,如下例所示。

csplit linux.txt /Chapter/ {3}

我们看到的输出是每个文件片段的字节数。

可以看到,创建了5个文件,第1章之前的空白空间也被划分了。

这些文件的命名方式与使用前面解释的 split 命令时的名称相同。我们来看看他们是如何划分的。

第一个文件xx00是空的,它是第一次出现“Chapter”正则表达式之前的空白空间,文件被分割。

第二部分仅正确显示了第一章。

第三部分展示了第二章。

第四部分展示了第三章。

最后一块展示了第四章。

如前所述,指定正则表达式的数量是为了防止错误结果。默认情况下,如果我们不指定分割次数,csplit 只会对文件进行一次分割。

以下示例显示了上一个命令的执行,但未指定分割数。

csplit linux.txt /Chapter/

正如您所看到的,因为我们没有指定拆分数量,所以只生成了一个拆分和两个文件。

此外,如果您输入错误的拆分数量,例如,只有 4 个正则表达式的 6 个拆分,您将收到错误,并且不会发生拆分,如下例所示。

那么当内容太长,并且你不知道内容中有多少个正则表达式要拆分时该怎么办呢?在这种情况下,我们需要实现通配符。

通配符将生成许多片段作为文档中找到的正则表达式,而无需您指定它们。

csplit linux.txt /Chapter/ {*}

如您所见,文件已正确分割。

csplit 命令包括本教程中未解释的其他有趣功能。您可以在 https://man7.org/linux/man-pages/man1/csplit.1.html 获取有关 split 命令的更多信息。

如何合并或连接文件:

现在您知道如何根据大小或内容拆分文件。下一步是合并或连接文件。使用 cat 命令可以轻松完成任务。

如下所示,如果我们使用 cat 和通配符读取所有文件的片段,cat 命令将按名称的字母顺序对它们进行排序。

cat xx*

正如您所看到的,猫能够正确地对文件进行排序。连接或合并文件包括导出此结果;您可以按照下面的示例所示进行操作,其中combinedfile是组合文件的名称。

cat xx* > combinedfile

如下图所示,文件已正确合并。

less combinedfile

结论:

正如您所看到的,在 Linux 中将文件拆分为多个部分非常容易,您只需要知道什么是适合您的任务的工具即可。对于任何 Linux 用户来说,学习这些命令及其优点都是值得的,例如,当通过不稳定的连接或通过限制文件大小的通道共享文件时。这两个工具都有许多本教程中未解释的附加功能,您可以在它们的手册页上阅读。

我希望本教程解释如何在 Linux 中将文件拆分为多个部分,对您有所帮助。继续关注此站点以获取更多 Linux 技巧和教程。

©2015-2025 艾丽卡 support@alaica.com