sed学习 2
场景:配置文件一项配置一行,现在通过脚本,使得指定配置项的内容做修改
我觉得应该是清除当前的指定配置项,使用模式匹配
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 o'clock we'll 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进阶
总结之后再弄吧,今天先做修改配置项
posted on 2021-05-12 10:26 toughcactus 阅读(49) 评论(0) 编辑 收藏 举报