Linux 中的 split 命令 – 将大文件分解成小文件

Linux 中的 split 命令可以让你 将大文件拆分成小文件. 默认情况下,较小的文件包含 每个 1000 行. 但是,split 命令还为您提供了自定义每个较小文件中的行数和字节数的选项。 在本教程中,我们将学习如何使用 split 命令将大文件拆分为较小的文件。

让我们开始吧。

如何在Linux中使用split命令?

首先,我们将创建一个示例文本文件。 然后,我们将使用 split 命令移动拆分文件。

1. 创建示例文件

让我们使用 cat 命令创建一个示例文件。 示例文件的文本如下:

This is line number 1 This is line number 2 This is line number 3 This is line number 4 This is line number 5 This is line number 6 This is line number 7 This is line number 8 This is line number 9  This is line number 10 This is line number 11 This is line number 12 This is line number 13 This is line number 14 

示例文本文件共有 14 行。 要创建文件,请使用:

$ cat > sample.txt This is line number 1 This is line number 2 This is line number 3 This is line number 4 This is line number 5 This is line number 6 This is line number 7 This is line number 8 This is line number 9  This is line number 10 This is line number 11 This is line number 12 This is line number 13 This is line number 14  
创建文本文件

2.使用split命令拆分文本文件

如果我们使用不带任何选项的 split 命令,那么默认情况下它会在 1000 行标记处换行。

split sample.txt  

让我们看看如何将大文件拆分为每个包含 n 行的小文件。

3. 修复拆分后文件的行数问题

要提供拆分后较小文件应包含的行数,请使用以下语法。

split -l 8 sample.txt 

这将在每 8 行之后破坏我们的原始文件。 要查看创建的文件的名称,请使用 ls 命令。

ls 

输出 :

这两个新文件是“xaa”和“xab”。

我们可以使用 cat 命令查看文件的内容。

cat xaa 

输出 :

This is line number 1 This is line number 2 This is line number 3 This is line number 4 This is line number 5 This is line number 6 This is line number 7 This is line number 8 
cat xab 

输出 :

This is line number 9  This is line number 10 This is line number 11 This is line number 12 This is line number 13 This is line number 14 
猫

让我们尝试将示例文件分解成更小的文件,每个文件三行。

split -l 3 sample.txt 

我们得到的新文件是:

  • xaa
  • xab
  • 验证
  • 限制

我们可以使用 cat 命令查看文件的内容:

3 行

您可以看到这些文件的名称类似于 xaa、xab、xac、xad 等。

split 命令还允许您为新文件指定一个名称。 让我们在下一节中学习如何做到这一点。

4. 为新文件取一个您选择的名称

要为新文件提供名称,请​​使用以下语法:

 split -l 3 sample.txt [filename]  

创建的文件将具有类似 filename 的名称aa, 文件名离开, 文件名交流电, 文件名广告 等等。

让我们看一个例子:

 split -l 3 sample.txt three_lines 

现在,如果我们运行 ls,那么我们可以使用 ls 命令. 输出 :

三行ls

您可以使用 cat 命令查看文件的内容。

猫

您还可以使用 split 命令生成详细输出。 详细输出将包含创建的新文件的名称。

5. 从 split 命令生成详细输出

要生成详细输出,请使用 –详细标志 连同 split 命令。

split -l 3 sample.txt three_lines --verbose 

输出 :

creating file 'three_linesaa' creating file 'three_linesab' creating file 'three_linesac' creating file 'three_linesad' creating file 'three_linesae' 

输出现在包含拆分后创建的新文件的名称。

6. 修复分割后文件的字节数

就像 -l 标志让你改变较小文件中的行数一样, -b 标志 允许您更改较小文件中的字节数。

split -b 50 sample.txt --verbose 

此命令会将示例文件分解为每个 50 字节的较小文件。 输出:

creating file 'xaa' creating file 'xab' creating file 'xac' creating file 'xad' creating file 'xae' creating file 'xaf' creating file 'xag' 

您还可以通过提及以 KB、MB 和 GB 为单位的拆分大小来拆分文件。 其语法如下:

  • 知识库: split -b nK {file_name}
  • 兆欧: split -b nM {file_name}
  • 国标: split -b nG {file_name}

这里 n 是一个数值。

7.将文件命名系统从字母更改为数字

目前,这些文件的后缀如下 aa, ab, ac 等等。 要将此命名系统更改为数字系统,请使用 -d 标志 连同 split 命令。

 split -db 50 sample.txt --verbose 

输出:

creating file 'x00' creating file 'x01' creating file 'x02' creating file 'x03' creating file 'x04' creating file 'x05' creating file 'x06' 

我们可以看到后缀 (01, 02, 03) 现在是数字系统。

8.将一个大文件分解成n个小文件

有时您想将一个大文件分成固定数量的小文件。 您可以使用 -n 标志 连同 split 命令。 让我们看一个例子:

 split -dn4 sample.txt --verbose 

输出 :

creating file 'x00' creating file 'x01' creating file 'x02' creating file 'x03' 

创建了四个新文件,因为我们使用了 -d 标志,新文件遵循数字命名系统。

结论

本教程是关于 Linux 中的 split 命令。 我们了解了将大文件分解为小文件的不同方法。 希望你和我们一起学习愉快!