我在linux中有一些xml文件
a="xx
xx
xx"
b="y
y
y"
如何替换内容并成为
a="xx\n\xx\nxx"
b="y
y
y"
其中属性b不是替换
我试过这个但是如何支持多个文件并仅使用sed或awk命令替换属性“a”; (不使用xslt)
sed ':a;N;$!ba;s/\n/\\n/g' abc.xml
答案 0 :(得分:0)
gawk的
gawk -vRS="\nb=" '/a=/{ gsub("\n","\\n") }
{ if (RT == "") printf "%s", $0
else print
}' ORS="\nb=" file
输出
$ ./shell.sh
a="xx\nxx\nxx"
b="y
y
y"
答案 1 :(得分:0)
这是一个应该有效的sed
命令:
sed -n '/^a/ {:b; $b; N; /^a.*\"$/ {s/\n/\\n/gp;b};bb}; /^a/! p'