replace换行符

我有一些在Linux的XML文件

a="xx xx xx" b="y y y" 

如何更换内容并成为

 a="xx\n\xx\nxx" b="y y y" 

其中属性b不被replace

我已经尝试这个,但如何支持多文件,并使用sedawk命令replace属性“a”; (不使用xslt)

 sed ':a;N;$!ba;s/\n/\\n/g' abc.xml 

Solutions Collecting From Web of "replace换行符"

呆子

 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" 

这是一个应该工作的sed命令:

 sed -n '/^a/ {:b; $b; N; /^a.*\"$/ {s/\n/\\n/gp;b};bb}; /^a/! p'