sed笔记

sed笔记

替换1.txt中

[log]
file_name=D:\Trans
[server]
open=3
[listen]
ip=0.0.0.0
port=1860
[market]
count=1
[market_0]
name=ALL
connect=0

server段落里open=这一整行为hello

sed -e "/\[server\]/,/\[/{/open/c\hello}" 1.txt

这样会报错{未匹配。原因是c命令会把c\后面的字符都当作替换字符,所以找不到结束的}了。

正确做法:

sed -e "/\[server\]/,/\[/{s/open.*$/hello/g}" 1.txt

或者

sed -e "/\[server\]/,/\[/{};/open/c\hello" 1.txt

或者将命令写到sed脚本里

sed -f 2.txt 1.txt

2.txt

/\[server\]/,/\[/{
/open/c\
hello
}



Published by Wiz


posted on 2011-08-31 14:35  windviki  阅读(182)  评论(0编辑  收藏  举报