linux 命令 — split

split

按照数据大小和行数来分割文件

指定分割文件后缀

split -b 10k data.file
按照每个文件10k分割文件(默认使用字母作为后缀)

split -b 10k data.file -d -a 4
使用数字作为分割文件的后缀,后缀长度为4

指定前缀

split [command_args] prefix

split -b 10k data.file -d -a 4 split_file
将split_file作为分割文件名称的前缀

按行分割文件

split -l 10 data.file
每10行分割为一个文件

按照文件自身特点分割csplit

有文本文件如下:

SERVER-1
[connection] 192.168.0.1 success
[connection] 192.168.0.1 success
[connection] 192.168.0.1 success
SERVER-2
[connection] 192.168.0.1 success
[connection] 192.168.0.1 success
[connection] 192.168.0.1 success
SERVER-1
[connection] 192.168.0.1 success
[connection] 192.168.0.1 success
[connection] 192.168.0.1 success

按照服务器分割文件

csplit server.log /SERVER/ -n -s {*} -f server -b "%02d.log"; rm server00.log
/SERVER/: 用来匹配某一行
/[REGEX]/: 表示文本样式。包括从当前行直到(但不包括)包含"SERVER"的匹配行
{星号}: 表示匹配重复执行分割,直到文件末尾为止,可以用{整数}指定分割执行次数
-s: 是命令进入静默模式,不打印其他信息
-n: 指定分割后的文件名后缀数字个数
-f: 指定分割后文件名的前缀
-b: 指定后缀的格式。类似c语言的printf参数格式,这里文件名=前缀+后缀=server + %02d.log
rm server00.log: 因为文件中并没有SERVER-00,所以删除该文件

posted @ 2017-06-29 23:35  lacker  阅读(204)  评论(0编辑  收藏  举报