您必须将大文本文件拆分为许多较小的文件可能有很多原因。 由于存储限制,或者通过一次使用不同的 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 – 拆分命令