首页 > 其他 > 详细

sed学习 2

时间:2021-05-12 14:45:49      阅读:13      评论:0      收藏:0      [点我收藏+]

场景:配置文件一项配置一行,现在通过脚本,使得指定配置项的内容做修改

我觉得应该是清除当前的指定配置项,使用模式匹配

sed /config name/d data.txt

在最后一行的下一行写入包含配置项的文件

sed $r configAdd data.txt

 

----------------------------------

在最后一行的下一行添加数据

sed $a\alright‘ data.txt

 

---------------------------

sed 替换命令,对行做处理

#仅对第二行作替换
$ sed 2s/dog/cat/ data1.txt 

#对2-3行作替换,是一个区间
$ sed 2,3s/dog/cat/ data1.txt

#对除第一行外的所有行做替换
$ sed 2,$s/dog/cat/ data1.txt 

 

--------------------------------

sed options script file

  • sed options -n:不产生命令输出,使用print命令来完成输出
  • sed script s,格式如下
s/A/B/

  所有行里,匹配A,替换为B,仅限每行第一个A

    • 替换标记
s/A/B/flags
s/A/B/g #每行不限次数

  

# cat ttt
hello
world
dog
grey

# sed s/og/oor/ ttt
hello
world
door
grey

#标记p其实是将替换了的行,替换后的内容打印出来,和-n连用很明显
#如果不和-n连用,就是替换了的行,替换后的内容打印两次
# sed s/og/oor/p ttt
hello
world
door
door
grey

# sed -n s/og/oor/p ttt
door

-----------------------------------

正则表达式

  • 点号:必须匹配一个字符
$ cat data6 

1>This is a test of a line. 
2>The cat is sleeping. 
3>That is a very nice hat. 
4>This test is at line four. 
5>at ten oclock well go home. 

$ sed -n /.at/p data6 

2>The cat is sleeping. 
3>That is a very nice hat. 
4>This test is at line four. 

显然,1>中无at,5>中,at前无字符

  • 星号:跟在某个字符后面,表明该字符出现0次或多次
  • 点号和星号连用:基本就是匹配所有了
# cat data
hello
world
dog
grey

# sed -n /.*/p data
hello
world
dog
grey

t# sed -n /l.*/p data
hello
world

 

 

 

 

 

 

------------------------

 

之前有一回学习sed,但是没做笔记,大头啊

那天学习的是Linux命令行与shell脚本编程大全 ,看全明星比赛去了

主要是

第19章 初识sed和gawk

第21章 sed进阶

第22章 gawk进阶

 

总结之后再弄吧,今天先做修改配置项

sed学习 2

原文:https://www.cnblogs.com/toughcactus/p/14758716.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!