环境: CentOS
1,split 帮助查看
用法: split[OPTION]...[输入[前缀]]
将固定大小的片输出到 PREFIXaa,PREFIXab,...; 默认值大小为 1000 行, 默认前缀为 "x". 没有输入, 或者当输入时是 -, 读取标准输入.
长选项的强制参数对于短选项也是必需的.
-a, --suffix=N 生成长度为 N 的后缀(默认为 2)
--additional-suffix=suffix 在文件名后附加一个后缀
-b, --bytes=SIZE 放入每个输出文件的大小字节
-C, --line-bytes=size 每个输出文件最多放入行的大小字节
-d, --numeric-suffixes[=FROM] 使用数字后缀而不是字母后缀; 从更改起始值(默认值 0)
-e, --elide-empty-files 不生成带有 "-n" 的空输出文件
--filter=command 写入 shell 命令; 文件名为 $file
-l, --lines=NUMBER 放入每个输出文件的 NUMBER 行
-n, --number=CHUNKS 生成 CHUNKS 输出文件; 参见下面的解释
-u, --unbuffered 没有缓冲立即用 "-n r/..." 将输入复制到输出
--verbose 打印诊断就在每个诊断之前输出文件已打开
--help 显示此帮助并退出
--version 输出版本信息并退出
SIZE 是一个整数和可选单位 (例如: 10M 是 10*1024*1024). 单位是 K,M,G,T,P,E,Z,Y(1024 的幂) 或 KB,MB...(1000 的幂).
块可以是:
N 根据输入的大小分成 N 个文件
K/N 输出到标准输出
l/N 拆分为 N 个文件而不拆分行
l/K/N 不分行输出 N 的第 K 位到标准输出
r/N 类似于 "l", 但使用循环分布
r/K/N 只将 N 的 Kth 输出到标准输出
2, 最简单使用
- [[email protected] a]# split file.txt #默认按 1000 行拆分成以 x 开头的多个文件
- [[email protected] a]# ll
- total 124
- -rw-r--r-- 1 root root 48894 Aug 5 20:41 file.txt
- -rw-r--r-- 1 root root 3893 Aug 5 21:28 xaa
- -rw-r--r-- 1 root root 5000 Aug 5 21:28 xab
- -rw-r--r-- 1 root root 5000 Aug 5 21:28 xac
2, 指定输出文件格式
- [[email protected] a]# split file.txt -d -a 2 out #指定输出文件格式 out 开头 -d 指定数字开始'00' -a 指定两位
- [[email protected] a]# ll
- total 124
- -rw-r--r-- 1 root root 48894 Aug 5 20:41 file.txt
- -rw-r--r-- 1 root root 3893 Aug 5 21:32 out00
- -rw-r--r-- 1 root root 5000 Aug 5 21:32 out01
- -rw-r--r-- 1 root root 5000 Aug 5 21:32 out02
3, 指定分割行数和输出文件格式
- [[email protected] a]# split -l 2000 file.txt -d -a 2 out #指定拆分行数 -l 指定 2000 行
- [[email protected] a]# ll
- total 108
- -rw-r--r-- 1 root root 48894 Aug 5 20:41 file.txt
- -rw-r--r-- 1 root root 8893 Aug 5 21:35 out00
- -rw-r--r-- 1 root root 10000 Aug 5 21:35 out01
- [[email protected] a]# cat out00|wc -l #统计文件 2000 行
- 2000
4, 按指定大小进行拆分
- [[email protected] a]# split -b 10k file.txt #每 10k 拆分成一个文件, 默认不加单位就是字节, 也可以带单位比如 KB,MB 等
- [[email protected] a]# ll
- total 104
- -rw-r--r-- 1 root root 48894 Aug 5 20:41 file.txt
- -rw-r--r-- 1 root root 10240 Aug 5 21:39 xaa
- -rw-r--r-- 1 root root 10240 Aug 5 21:39 xab
5, 对文件的合并
[[email protected] a]# cat xa*>> file.txt #将拆分的所有文件合并成一个文件
来源: http://www.bubuko.com/infodetail-3654009.html