<返回更多

如何在 Linux 中使用 split 命令拆分文本文件

2023-05-18  Linux迷  
加入收藏

linux 提供了许多用于文本操作和处理的命令,其中包括 split 命令。使用 split 命令,您可以轻松地将大文件拆分为较小的文件,或根据特定条件提取文件的特定部分。

让我们来探索如何在 Linux 中使用 split 命令来拆分文件。无论您需要从大文件中提取特定部分,还是将文件拆分为较小的块,split 命令都可以帮助您轻松实现目标。

什么是 split 命令?

split命令是由Torbjorn Granlund和Richard M. Stallman创建的流行的Linux命令行工具。顾名思义,split命令用于将文件拆分为较小的子文件。

该命令对于管理大型文件或在带宽有限的网络上传输文件非常有用。通过将大文件拆分为较小的部分,您可以减少需要传输或存储的数据量。您还可以使用split命令的逆操作将多个文件合并为一个文件。

split命令的语法

split命令的基本语法如下:split [选项]… [文件] [前缀]

如何使用 split 命令

您可以使用split命令按大小或长度将大文件分割为较小的文件。您甚至可以选择您想要的具体数量的较小文件。

为了演示,我们将使用一个名为linuxmi.txt的文本文件。请为本教程选择一个具有多行和相当大文件大小的文本文件。如果您没有这样的文件,您可以使用 Linux 文本编辑器或 cat 命令粘贴大量文本并保存。

根据行数拆分大文件

您可以使用split命令根据每个文件的特定行数将大文件分割为较小文件。

以下是语法:split -l [行数] [输入文件] [输出文件前缀]

例如,您可能希望将一个包含 210 行的文件分割为每个文件50行;您将获得五个较小的文件。前四个文件每个有50行,第五个文件只包含10行。

要将名为”largefile.txt”的文件拆分为每个文件100行的较小文件,请运行以下命令:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ split -l 100 linuxmi.txt smallfile

使用ls命令列出目录内容,您将看到拆分后的文件。

您还可以使用split命令根据特定的文件大小将大文件拆分为较小的文件。

以下是基本的语法:split -b [以字节为单位的大小] [输入文件] [输出文件前缀]

通过运行以下命令将largefile.txt拆分为每个文件300字节的较小文件:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ split -b 300 linuxmi.txt smallfile

这是结果:

按大小拆分大文件的结果

将大文件分割为特定数量的文件

您还可以将文件分割为固定数量的文件,而不考虑文件中的文件数和字节数。您可以使用-n选项来实现这一点。以下是语法:

split -n [文件数量] [输入文件] [输出文件前缀] 要将大文件分割为五个部分,请执行以下命令:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ split -n 5 linuxmi.txt smallfile

结果应该如下所示:

按文件数量拆分大文件

更改拆分文件的后缀长度

您可能已经注意到,附加到输出文件名的后缀的默认长度为两个字符。例如,smallfileaa,smallfileab,smallfileac等。

要更改后缀的长度,您可以使用 -a 选项。以下是更改后缀长度的语法:

split -a [后缀长度] [输入文件] [输出文件前缀]

您可以将此后缀长度选项与其他 split 命令一起使用。要将 linuxmi.txt 文件分割为10个部分,并具有 4 个字符的后缀长度,请执行以下命令:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ split -a 4 -n 10 linuxmi.txt smallfile

当您列出目录的内容时,输出应如下所示:

将大文件拆分为具有较长后缀的较小文件

使用cat合并多个文件

好消息是,您始终可以将拆分的文件合并在一起,以生成原始文件。要将拆分的文件合并回原始文件,请使用cat命令。以下是执行此操作的语法:

cat [拆分文件] > [输出文件]

在使用cat命令合并拆分文件时,指定拆分文件的正确顺序非常重要。

cat命令只是按照指定顺序连接文件,因此如果文件顺序不正确,合并后的文件将损坏。

在拥有许多拆分文件的情况下,例如一百个拆分文件,逐个键入每个文件并按照正确的顺序进行操作将会很麻烦。

这就是前缀的作用。只需添加一个星号(*),就可以合并以该前缀开头的所有文件。

cat prefix* > [输出文件]

以下是一个示例命令,它将拆分文件smallfileaa、smallfileab、smallfileac和smallfilead合并成一个名为linuxmi.txt的文件:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ cat smallfile* > linuxmi.txt

此命令将连接与模式smallfile*匹配的所有拆分文件的内容,并将输出重定向到一个名为 bigfile.txt 的新文件。它还将按照文件名的自然顺序列出拆分文件,这应该是合并的正确顺序。

使用Linux工具提高效率

split 命令只是 Linux 提供的众多工具之一,它可以通过将大文件拆分为更小、更易管理的块来帮助您高效地管理大文件。

通过掌握 Linux 文本处理命令,您可以节省时间和资源,提高效率。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>