在终端中将文本文件拆分为多个部分

您必须将大文本文件拆分为许多较小的文件可能有很多原因。 由于存储限制,或者通过一次使用不同的 U 盘复制较小的部分来提高传输速度。 或者,出于安全原因,您可能希望将文件的不同部分存储在不同的位置。

Linux 命令行真的很强大,您可以使用预装的工具在终端应用程序本身中实现这一切。

创建示例文件

首先,我将使用 dnf 和 cat 命令创建一个大示例文件,如果您已经有一个大文件,则不必创建此示例文件,您可以直接跳到本教程的拆分部分。 (我使用的是 Fedora,因此 dnf 是包管理器,但是,您应该使用您的发行版的包管理器)

在终端中,键入:

dnf list installed | cat >> dnflist.txt 
创建大文本文件

现在,使用 vim 或 nano 等文本编辑器打开文本文件,以验证该文件确实是使用以下命令创建的:

vim dnflist.txt 

或者对于 nano 用户:

nano dnflist.txt 
创建的文本文件

现在,如果您自定义了任何一个文本编辑器,那么您可以看到如上图所示的行数。

拆分文档

您可以使用两种方法来拆分文档,一种是按文档的大小,另一种是按行数。

首先,让我们按照里面的行数来分割文档,

按行数拆分文本文件

如果您想知道文档中的行数,可以使用以下命令:

wc -l dnflist.txt 
文本文件中的总行数文本文件中的总行数

这里,-l 标志表示文本文件中的行数。 现在,使用 split 命令本身,在终端中键入以下内容:

split -l 100 --additional-suffix=.txt dnflist.txt 
按行拆分文本文件按行拆分文本文件

如果您不指定行数,则默认情况下该命令将在第 1000 行吐出文件。 默认情况下,前缀设置为 (x),后缀设置为 (aa),我们的 –additional-suffix 标志在每个文件的末尾添加 .txt。

按大小拆分文本文件

首先,要检查原始文档的大小,请在终端中键入以下命令:

ls -l dnflist.txt 
文本文件的大小(以字节为单位)文本文件的大小(以字节为单位)

如上图所示,该文件为 158159 字节。 现在,我们可以选择根据字节大小将文件拆分为多个部分。 假设我们希望每个文件有 100000 字节。 然后在终端中输入以下内容:

split -b 100000 --additional-suffix=.txt dnflist.txt 
按大小拆分文本文件按大小拆分文本文件

结论

您还可以在拆分命令输出的末尾添加一个数字后缀,方法是键入如下相同的命令:

split -d -b 100000 --additional-suffix=.txt dnflist.txt output_text 
添加数字后缀添加数字后缀

或者对于字母后缀,您不必使用 -d 标志,只需键入:

split -b 100000 --additional-suffix=.txt dnflist.txt output_text 
添加字母后缀添加字母后缀

参考:Archwiki – 拆分命令