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

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

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

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

什么是 split 命令?

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

该命令对于管理大型文件或在带宽有限的网络上传输文件非常有用。通过将大文件拆分为较小的部分,您可以减少需要传输或存储的数据量。您还可以使用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 文本处理命令,您可以节省时间和资源,提高效率。

责任编辑:赵宁宁 来源: Linux迷
相关推荐

2022-11-25 09:16:43

Linux命令

2022-09-29 10:01:05

Go编程语言文本文件

2019-05-23 09:48:43

Linux正则表达式文本文件

2014-03-11 10:11:33

Linux命令more命令文本文件

2019-02-13 09:20:13

Linux命令行more

2022-10-25 09:07:28

Linuxxargs命令

2021-10-19 07:27:08

Unix Dos转换

2010-04-30 17:38:31

Unix文本

2021-11-29 09:46:11

FileReaderJava开发

2022-11-18 10:16:26

Linuxwc 命令

2018-06-26 09:15:24

Linux命令history

2018-05-16 10:32:06

Linux命令find

2009-08-06 18:33:45

C#处理文本文件

2009-09-02 19:13:08

C#处理文本文件

2018-04-28 09:12:42

Linux

2022-05-25 08:41:48

Linuxfd 命令文件

2018-01-09 09:00:01

Linux命令文件压缩

2014-02-12 14:45:40

Linux文本文件

2019-12-17 09:00:48

split分割Linux文件Linux

2010-01-15 10:05:35

VB.NET文件对象
点赞
收藏

51CTO技术栈公众号