linux命令学习之split 分割大文件 —— 筑梦之路

命令主要作用

将一个大文件分割成多个小文件。它可以根据文件大小或行数将大文件拆分成多个小文件,方便进行文件传输、备份或处理。它可以按照指定的大小或者行数,将原始文件切割为多个部分,并自动命名输出的文件。

基本语法

split [OPTION]... [FILE [PREFIX]] 

其中:OPTION用于指定分割方式(按大小或行数);FILE是需要被分割的大文件,如果没有FILE,或者当FILE为-时,读取标准输入;PREFIX是分割后生成的小文件的前缀名。

默认大小为1000行,默认PREFIX为“x”,因此将FILE分割后输出到xaa、xab、…

 常用选项

-a, --suffix-length=N:指定输出文件后缀名的长度。默认为2。

--additional-suffix=SUFFIX:将额外的SUFFIX附加到文件名中。

-b, --bytes=SIZE:指定每个输出文件的大小,单位为字节。例如,-b 1M表示每个输出文件大小为1MB。

-l, --lines=NUMBER:指定每个输出文件的行数。例如,-l 1000表示每个输出文件包含1000行。

-d:使用从0开始的数字后缀,而不是字母后缀。

--numeric-suffixes[=FROM]:与-d相同,但允许设置起始值。

-x:使用从0开始的十六进制后缀,而不是字母后缀。

--hex-suffixes[=FROM]:与-x相同,但允许设置起始值。

-d, --numeric-suffixes:使用数字作为后缀名,而不是默认的字母。这样可以更直观地看出文件的顺序。

-n, --number=CHUNKS:分割为指定数量的输出文件。

CHUNKS可以是以下指定形式:

N:根据大小将输入数据分割为N个文件。

K/N:输出第K个文件(共N个,K从1开始)到标准输出。

l/N:分割为N个文件,不拆分行/记录(l为字母L的小写)。

l/K/N:输出第K个文件到标准输出,不拆分行/记录。

r/N:类似于“l/N”,但使用轮询分布。

r/K/N:类似于 r/N,但是只将第K个文件输出到标准输出。

使用示例

 

1. 按文件大小分割

假设我们有一个名为sample.dat的大文件,想要将其分割成每个大小为20MB的小文件,可以使用以下命令:

split -b 20M sample.dat sample_
执行后,会生成多个以sample_为前缀的小文件,如sample_aa、sample_ab等,每个文件大小为20MB。


2. 按行数分割并使用数字后缀名

如果我们想要按照行数来分割文件,比如将list.txt分割为每个小文件包含1000行,可以使用以下命令:

split -l 1000 --numeric-suffixes=1 list.txt list_
执行后,会生成多个以list_为前缀、数字为后缀的小文件,如list_01、list_02等,每个文件包含1000行数据。

如果想保留文件名的.txt后缀,可以添加--additional-suffix选项。


3. 分割为指定数量的输出文件

如果需要按照输出文件数量分割文件,可以使用CHUNKS参数来指定文件的分割方式。比如将list.txt使用循环分布的方式分隔成3个文件。我们使用seq生成一个数字序列来进行演示:

seq 12 >list.txt
生成的list.txt文件有12行,每行分别对应从1到12的数字。

使用循环分布分割为3个文件,不拆分行/记录:

split -n r/3 list.txt
执行后,会生成3个文件:xaa、xab、xac。

将轮询分布后的第2个文件输出到标准输出,其内容与之前生成的xab文件内容一致:

~$ split -n r/2/3 list.txt
2
5
8
11

相关推荐

  1. linux命令学习split 分割文件 ——

    2024-03-19 15:46:03       18 阅读
  2. linux 常用脚本搜集(nginx) ——

    2024-03-19 15:46:03       41 阅读
  3. 深入理解Dockerfile ——

    2024-03-19 15:46:03       34 阅读
  4. ffmpeg静态编译 ——

    2024-03-19 15:46:03       37 阅读
  5. 命令行重置kafka消费最新数据 ——

    2024-03-19 15:46:03       44 阅读
  6. LVM逻辑卷管理快照 ——

    2024-03-19 15:46:03       7 阅读
  7. ansible crontab任务管理 ——

    2024-03-19 15:46:03       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-19 15:46:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-19 15:46:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-19 15:46:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-19 15:46:03       20 阅读

热门阅读

  1. 24计算机考研调剂 | 浙江科技大学

    2024-03-19 15:46:03       15 阅读
  2. 一文解读ISO26262安全标准:初步危害分析PHA

    2024-03-19 15:46:03       16 阅读
  3. 分享SQL的7种进阶用法

    2024-03-19 15:46:03       18 阅读
  4. codetop刷题笔记1——两数之和/iota/lambda表达式

    2024-03-19 15:46:03       20 阅读
  5. 【sql】初识 where EXISTS

    2024-03-19 15:46:03       21 阅读
  6. Bash Shell中单引号和双引号的区别详解

    2024-03-19 15:46:03       25 阅读
  7. Git速成

    Git速成

    2024-03-19 15:46:03      17 阅读
  8. openh264初探

    2024-03-19 15:46:03       15 阅读
  9. 工程化专栏目录

    2024-03-19 15:46:03       20 阅读