Linux脚本攻略学习笔记之split实例演示


分割文件为提高可读性、生成日志、通过E-mail发送文件等

1、指定拆分文件大小

split 目录下 有文件 split_data.file 大小为423字节
在这里插入图片描述

把文件拆分为 100字节大小的

split -b 100 split_data.file

在这里插入图片描述

可以看到文件被拆为5个文件其中四个为100字节,一个为23字节。看到拆分后的文件后缀名为字母,前缀是x。

还可以使用 M (MB)、 G (GB)、 c (byte)、 w (word)

2、以数字为后缀

split  -C 100 split_data.file -d # -C 以字节拆分   -d以数字为后缀

在这里插入图片描述

3、-a 指定后缀长度

split -b split_data.file 100 -d -a 3  

在这里插入图片描述

4、修改前缀

直接把前缀放到命令中,以split_file为前缀

split -b 100 split_data.file -d -a 3 split_file

在这里插入图片描述

5、-l按照数据行来拆分

文件按4行来拆分

split -l  4 split_data.file

在这里插入图片描述

来看文件内容
在这里插入图片描述

6、csplit

csplit 是 split 工具的一个变体。 split 只能够根据数据大小或行数分割文件,而 csplit
可以根据文本自身的特点进行分割。是否存在某个单词或文本内容都可作为分割文件的条件
server.log 日志内容如下:

SERVER-1
[connection] 192.168.0.1 success
[connection] 192.168.0.2 failed
[disconnect] 192.168.0.3 pending
[connection] 192.168.0.4 success
SERVER-2
[connection] 192.168.0.1 failed
[connection] 192.168.0.2 failed
[disconnect] 192.168.0.3 success
[connection] 192.168.0.4 failed
SERVER-3
[connection] 192.168.0.1 pending
[connection] 192.168.0.2 pending
[disconnect] 192.168.0.3 pending
[connection] 192.168.0.4 failed

按照服务器去拆分日志

csplit  server.log /SERVER/ -n 2 -s {*} -f server -b  "%02d.log";rm server00.log

在这里插入图片描述
命令详解:
有关这个命令的详细说明如下。
 /SERVER/ 用来匹配某一行,分割过程即从此处开始。
 /[REGEX]/ 表示文本样式。包括从当前行(第一行)直到(但不包括)包含“ SERVER ”
的匹配行。
 {*} 表示根据匹配重复执行分割,直到文件末尾为止。可以用{整数}的形式来指定分割执
行的次数。
 -s 使命令进入静默模式,不打印其他信息。
 -n 指定分割后的文件名后缀的数字个数,例如01、02、03等。
 -f 指定分割后的文件名前缀(在上面的例子中,server就是前缀)。
 -b 指定后缀格式。例如 %02d.log ,类似于C语言中 printf 的参数格式。在这里文件名=
前缀+后缀= server + %02d.log

因为分割后的第一个文件没有任何内容(匹配的单词就位于文件的第一行中),所以我们删
除了server00.log

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜菜的中年程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值