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
}
本文章由windviki原创。转载请注明出处。