了解sed的基本参数
sed匹配的方法: '//'p, 此符号与grep的引号类似,但sed是一定加此符号的,且还要加上-n的参数,匹配起来相当麻烦。
sed匹配的方法: '//'pI 加上I的参数是指不区分大小写
sed的匹配删除: '//'d d配置出来直接删除,也可以指定行删除。如我要删除1-10行的文件:sed -i '1,10'd filename
sed的替换匹配: '1,10s/old/new/g 1,10表示一个范围,指1到10行 例子:替换10到50行内的root用户替换成yeyu用户: sed -i '10,50s/root/yeyu/g' filenmae
sed在开头添加: head filename |sed -r 's/(.*)/new:&/g' new:是指添加的内容。 (.*)表示一整行,后面的&代表前面的(.*)字符。
-r # 脱义参数,与grep的-E参数一样。
-n # 可以打印指定的行, sed -n '10'p fielname 或者 sed -n '2,5'p filename 或者 '5,$' 表示5到最后
-e # 可以同时写多个条件,匹配出来
-i # 改变原文件。
了解的sed的一些基本用法,我们来举几个例子实现下,正确的用法吧
1.通过sed在第5-9行开头插入"我爱你"
sed -i '5,9s/^/我爱你/g' install_nginx.sh
2.结尾插入"完美世界"
sed -i '5,9s/$/完美世界/g' install_nginx.sh
3.比如删掉5-9行,或者含有ansible的行
sed -in '5,9'd install_nginx.sh sed -i '/ansible/'d install_nginx.sh

4. 最后把test替换成yy_tomcat_gateway
sed 's/test/yy_tomcat_gateway/g' install_nginx.sh (这里没加-i参数,直接打印在桌面)

举了几个简单的例子,希望对大家有帮助。正则还是得多用才会慢慢熟悉
截取固定时间段的日志
sed -n '/2019-12-04 17:50:00/,/2019-12-04 18:00:00/'p mq_consumer.2019-12-04.log >12_04-2.log
【end】
浙公网安备 33010602011771号