如何在Linux中使用split命令分割文本文件
了解如何在 Linux 上使用 split 命令将一个大文件拆分为多个较小的文件。
Linux 提供了多种用于文本操作和处理的命令,包括 split 命令。通过拆分,您可以轻松地将大文件拆分为较小的文件,或根据特定条件提取文件的特定部分。
下面我们来探讨一下如何在Linux中使用split命令来分割文件。无论您需要提取大文件的特定部分还是将文件拆分为较小的块,split 命令都可以帮助您轻松实现目标。
什么是 split 命令?
split 命令是一个流行的 Linux 命令行工具,由 Torbjorn Granlund 和 Richard M. Stallman 创建。顾名思义,split命令用于将一个文件分割成更小的子文件。
此命令对于管理大文件或通过带宽有限的网络传输文件时非常有用。通过将大文件分成较小的部分,您可以减少在任何给定时间需要传输或存储的数据量。您还可以反转 split 命令,将多个文件合并为一个。
split 命令语法
split命令的基本语法是:
split [OPTION]... [FILE] [PREFIX]
[选项]: split 命令有不同的选项来决定您希望如何拆分文件以及您可能有兴趣添加的其他特定功能。
[FILE]:这是您要分割的文件的路径。
[PREFIX]:这是指子文件的前缀。
如何使用 split 命令
您可以使用 split 命令将大文件按大小或长度分割成较小的文件。您甚至可以选择所需的特定数量的较小文件。
为了进行演示,我们将使用名为 largefile.txt 的文本文件。请为本教程选择一个多行且相当大的文本文件。如果没有,您可以使用 Linux 文本编辑器或 cat 命令粘贴大文本并保存。
根据行数分割大文件
您可以使用 split 命令根据每个文件的特定行数将大文件分成较小的文件。语法如下:
split -l [number of lines] [input file] [output file prefix]
例如,您可能希望将一个 210 行的文件拆分为每个 50 行的文件;你会得到五个较小的文件。前四个文件各有 50 行,第五个文件仅包含 10 行。
要将名为“largefile.txt”的文件拆分为每个 100 行的较小文件,请运行以下命令:
split -l 100 largefile.txt smallfile
使用 ls 命令列出目录的内容,您将看到分割的文件。
根据大小分割大文件
您还可以使用 split 命令根据特定文件大小将大文件拆分为较小的文件。这是基本语法:
split -b [size in bytes] [input file] [output file prefix]
通过运行以下命令将 largefile.txt 拆分为每个 300 字节的较小文件:
split -b 300 largefile.txt smallfile
结果如下:
将大文件拆分为特定数量的文件
您还可以将文件拆分为固定数量的文件,而不管文件的数量和字节数。您可以使用-n选项来执行此操作。语法如下:
split -n [number of files] [input file] [output file prefix]
要将大文件拆分为五个部分,请执行以下命令:
split -n 5 largefile.txt smallfile
结果应该是这样的:
更改分割文件的后缀长度
您可能已经注意到,附加到输出文件名的后缀的默认长度是两个。例如,smallfileaa、smallfileab、smallfileac 等。
要更改后缀的长度,请使用-a选项。以下是更改后缀长度的语法:
split -a [length of suffix] [input file] [output file prefix]
您可以将此后缀长度选项与其他拆分命令一起使用。要将largefile.txt文件拆分为10个部分,后缀长度为4,请执行以下命令:
split -a 4 -n 10 largefile.txt smallfile
当您列出目录的内容时,输出应如下所示:
使用 cat 合并多个文件
好消息是您始终可以将分割的文件重新合并在一起以生成原始文件。要将分割文件合并回原始文件,请使用 cat 命令。这是执行此操作的语法:
cat [split files] > [output file]
使用 cat 命令合并分割文件时,指定分割文件的正确顺序非常重要。
cat 命令只是按照指定的顺序连接文件,因此如果文件的顺序不正确,合并后的文件将会损坏。
在有许多分割文件的情况下,例如一百个分割文件,按正确的顺序逐个输入每个文件会很麻烦。
这就是前缀的用武之地。只需添加星号 (*) 即可合并以该前缀开头的所有文件。
cat prefix* > [output file]
下面是一个示例命令,它将分割文件 smallfileaa、smallfileab、smallfileac 和 smallfilead 合并到一个名为 bigfile.txt:
cat smallfile* > bigfile.txt
此命令将连接与模式 smallfile* 匹配的所有拆分文件的内容,并将输出重定向到名为 bigfile.txt 的新文件。它还会根据名称按自然顺序列出分割文件,这应该是正确的合并顺序。
使用 Linux 工具提高效率
split 命令只是 Linux 提供的众多工具之一,可帮助您将大文件分割成更小、更易于管理的块,从而有效地管理它们。
通过掌握Linux文本处理命令,您可以节省时间和资源并变得更加高效。