sed学习 2
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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进阶
总结之后再弄吧,今天先做修改配置项
以上是关于sed学习 2的主要内容,如果未能解决你的问题,请参考以下文章