sed的基本用法

了解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】

posted on 2019-01-30 14:34  yeyu1314  阅读(472)  评论(0)    收藏  举报