【发布时间】:2025-12-08 08:50:01
【问题描述】:
我在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
【问题讨论】:
我在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
【问题讨论】:
呆呆
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'
【讨论】: