Linux Split 命令详解:通过实例掌握文件分割技巧

INLINECODEe2856841 命令允许我们将一个大文件拆分成多个小块,以便于存储、传输或分析。默认情况下,它会以 1000 行为单位进行分割,并自动使用字母后缀(如 PREFIXaa, PREFIXab)来命名生成的文件(默认前缀是 INLINECODE6f1c05d5,当然我们也可以自定义,例如 split big.log part)。

  • 按行数设置分块大小:split -l 5000 big.log chunk_
  • 按字节数设置分块大小:split -b 50M video.mp4 vid_
  • 使用数字后缀以保持自然排序:INLINECODE7d6a1df7 (例如 INLINECODE13ca4dc2)
  • 非破坏性:split 命令仅读取文件;原始文件保持不变
  • 重新组合:cat part_* > merged.file (请确保顺序正确)

示例

将文件分割成小文件。假设我们有一个名为 INLINECODE5cdb8d01 的文件。让我们使用下面的 INLINECODE9916383d 命令来将其拆分。

命令:

split index.txt

输出:

!Split-file-into-short-files

  • 文件 INLINECODEe1e8a1fb 被分成了两个较小的文件,分别名为 INLINECODE0f04a209 和 xab
  • 默认情况下,每个分割出来的文件包含 1000 行。
  • 由于没有提供自定义前缀,INLINECODE99e730e9 命令自动使用了默认前缀 INLINECODE3a675f2f,因此生成的输出文件名为 INLINECODE18377760 和 INLINECODE5e56875c。

split 命令的常用选项

以下是 split 命令中一些常用的选项。

语法:

split [options] name_of_file prefix_for_new_files

1. 基于行数分割文件 (**-l**)

这个选项允许我们根据指定的行数将文件划分为较小的部分。每个输出文件将包含给定数量的行。

示例:

split -l 4 index.txt split_file

!splitting the file based on number of lines

  • 这会将 INLINECODE02355e3e 分割成较小的文件(INLINECODE8e69759c, split_fileab 等),每个文件包含 4 行

2. 使用详细模式 的 Split 命令 (**--verbose**)

  • --verbose 选项会在创建新的分割文件时显示一条消息。
  • 这有助于我们在分割过程中跟踪进度。

示例:

split index.txt -l 4 --verbose

!Split-command-with-verbose-option

  • 每当创建新的分割文件时,会显示详细输出,例如 “creating file ‘xaa’”。

注:

  • 这里使用 -l 4 并非必须,仅用于演示目的。

3. 基于文件大小分割文件 (**-b**)

  • -b 选项根据大小(字节、KB、MB 等)将文件分割成较小的块。

示例:

split -b 16 index.txt index

!Split-file-size-using-bytes-option

将 INLINECODE15aae70f 分割成多个文件(INLINECODE264cf293, indexab 等),每个文件包含 16 字节 的数据。

4. 更改后缀长度 (**-a**)

  • 默认情况下,分割文件的后缀有两个字符(如 INLINECODE159b9854, INLINECODEf09bd6f9)。
  • -a 选项允许我们自定义后缀的长度。

示例:

split -l 4 -a 4 index.txt

!Change-in-suffix-length

创建后缀长度为 4 个字符的文件,如 INLINECODE07b947d1, INLINECODE966d57ee, xaaac 等。

5. 创建数字后缀文件 (**-d**)

  • 通常,INLINECODEaa1bb5ed 使用字母后缀(INLINECODEe938a83a, xab 等)。
  • INLINECODE0d195539 选项会将它们更改为数字后缀(INLINECODE42473aa3, INLINECODE24124ab7, INLINECODE408a6b28 等)。

示例:

split -l 4 -d index.txt

!Split-files-created-with-numeric-suffix

  • 生成类似 INLINECODE5a28fa97, INLINECODE59786755, x02 等文件。

6. 将文件分割为 ‘n’ 个相等的块 (-n)

  • -n 选项将文件划分为特定数量的相等部分。
split -n 3 index.txt

!Create-n-chunks-output-files

  • index.txt 分成 3 个相等的部分,而不考虑文件大小或行数。

7. 自定义输出文件前缀

  • 我们可以使用此方法为分割文件设置自定义前缀。
split -l 4 index.txt split_index_

!Split-file-with-customize-suffix

  • 输出文件将被命名为 INLINECODE6767da8f, INLINECODE1290fa52 等。

8. 避免生成零大小的分割文件 (**-e**)

  • 当我们将一个小文件分割成太多的块时,有些文件可能会变成空的。
  • -e 选项可以防止创建零字节文件。
split -l 4 -e index.txt

![Avoid-zero-sized-split-files](https://media.geeksforgeeks.org/wp-content/uploads/2

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/29063.html
点赞
0.00 平均评分 (0% 分数) - 0