1.命令作用
Linux系统中的一个用于拆分文件的命令。它可以将一个大文件拆分成多个小文件,以便于传输、存储或处理
2.命令语法
Usage: split [OPTION]... [INPUT [PREFIX]]
Usage: split [选项]... [输入文件] [输出文件前缀]
3.参数详解
OPTION:
- -a, --suffix-length=N,生成分裂后文件名称的后缀长度为N,默认为2
- -b, --bytes=SIZE,指定每个分裂后输出文件的大小,大小可以使用后缀(如K、M、G)来表示,默认单位是字节
- -C, --line-bytes=SIZE,基于不拆分,指定每个分裂后输出文件的大小,大小可以使用后缀(如K、M、G)来表示,默认单位是字节
- -d, --numeric-suffixes[=FROM],使用数字后缀而不是字母后缀;FROM更改起始值(默认为0)
- -l, --lines=NUMBER,指定每个输出文件的行数
- -n, --number=CHUNKS,CHUNKS可以是N、K/N、l/N、l/K/N、r/N、r/K/N
- N,根据大小将文件输出N份
- K/N,按大小分成N份,直接输出第K份
- l/N,根据大小将文件输出N份,l代表不拆分行
- l/K/N,基于不拆分行,按大小分成N份,直接输出第K份
- -u, --unbuffered,与'-n r/...'使用,立即将输入复制到输出(无缓冲)
- --verbose,在打开每个输出文件之前打印诊断
4.常用用例
4.1.按大小拆分
## 按照2MB大小拆分文件,会拆分行保证文件大小一致
split -b 2MB data.csv
## 按照2MB大小拆分文件,
split -C 2MB data.csv,不会拆分行,文件大小有细微差距
4.2.按行数拆分
## 每30行拆分为一个文件,直到文件拆分完,拆分最后文件不足30行的,直接拆成一个文件
split -30 data.csv
split -l 30 data.csv
4.3.按个数拆分
## 按照大小拆分为10个文件,会拆分行
split -n 10 data.csv
## 按照大小拆分为10个文件,不会拆分行
split -n l/10 data.csv
4.4.拆分后文件命名
注:以上拆分都是以默认的名称命名,默认名称规则为xaa到xzz,x为固定字母,aa到zz是以字母顺序命名
1.指定命名前缀,即自定义x部分
## 指定拆分后文件名称前面部分为a_split
[root@localhost test]# split -d -a 3 -n 2 a.txt a_split
[root@localhost test]# ll
total 304
-rw-r--r--. 1 root root 76806 Jan 11 02:07 a_split000
-rw-r--r--. 1 root root 76806 Jan 11 02:07 a_split001
-rw-r--r--. 1 root root 153612 Jan 10 19:33 a.txt
2.指定命名后缀位数,即自定义aa-zz部分
## 后缀改为3位
[root@localhost test]# ll
total 152
-rw-r--r--. 1 root root 153612 Jan 10 19:33 a.txt
[root@localhost test]# split -a 3 -n 2 a.txt
[root@localhost test]# ll
total 304
-rw-r--r--. 1 root root 153612 Jan 10 19:33 a.txt
-rw-r--r--. 1 root root 76806 Jan 11 02:04 xaaa
-rw-r--r--. 1 root root 76806 Jan 11 02:04 xaab
## 改为数字后缀,且为3位
[root@localhost test]# split -d -a 3 -n 2 a.txt
[root@localhost test]# ll
total 304
-rw-r--r--. 1 root root 153612 Jan 10 19:33 a.txt
-rw-r--r--. 1 root root 76806 Jan 11 02:06 x000
-rw-r--r--. 1 root root 76806 Jan 11 02:06 x001