sed 在两行匹配之间插入一行
综述:今天有个任务就是在两个匹配行之间插入一行,例如文件格式为
hello
welcome to shanghai
在这两个之间插入一行liming。
方案
查了一下sed的用法貌似可以试一下,看到命令n可以读入下一行到pattern space,就可一匹配完前一行,继续匹配下一行了。
点击(此处)折叠或打开
# sed ‘/hello/{n;s/welcome to shanghai/liming\n&/g}
在这种情况下n变成N也是可以的。N表示读入两行到匹配空间,然后在匹配。
点击(此处)折叠或打开
# sed ‘/hello/{N;s/welcome to shanghai/liming\n&/g}
首先是匹配hello,然后n,读入下一行,在下一行匹配welcome to shanghai ,之后用liming\n,变相的插入一行,&表示继续输出之前的匹配文字。
n表示对下一行执行匹配,而N只是表示读取下一行到匹配区域,后边的命令,是对每一行进行匹配。
(转)http://www.ttlsa.com/linux-command/sed-two-line-inset-one-line/
热门日志
分类
- Django(4)
- ssdb(1)
- Mac(7)
- C(1)
- memcache(1)
- Python(32)
- Vim(8)
- sed(2)
- ansible(3)
- awk(4)
- shell(3)
- about(1)
- git(9)
- bat(4)
- svn(0)
- docker(1)
- Tornado(1)
- go(2)
- 架构(18)
- Vue(1)
- game(2)
- Html(6)
- Java(8)
- Mysql(37)
- Ajax(2)
- Jsp(1)
- Struts(8)
- Linux(72)
- JavaScript(39)
- Staruml(0)
- Mouth(1)
- Php(102)
- Windows(8)
- Message(48)
- Lua(10)
- Compute(1)
- Redis(7)
- Nginx(12)
- Jquery(1)
- Apache(1)
- cocos2d-x(8)