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
输出:
- 文件 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
创建后缀长度为 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
- 将
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