Xml 仅在包含其他字符串的特定行中替换字符串
我有一个很大的xml文件,我只想将Xml 仅在包含其他字符串的特定行中替换字符串,xml,awk,replace,sed,gsub,Xml,Awk,Replace,Sed,Gsub,我有一个很大的xml文件,我只想将weight=“7.0”替换为weight=“11.0”,但只在包含clockRateScaler的行中,如下所示 <operator id="clockRateScaler." spec="ScaleOperator" parameter="@clockRate.c" scaleFactor="0.5" weight="7.0"/> 但它不起作用 在awk或sed下如何执行此操作?使用sed sed 'clockRateScaler/s/
weight=“7.0”
替换为weight=“11.0”
,但只在包含clockRateScaler
的行中,如下所示
<operator id="clockRateScaler." spec="ScaleOperator" parameter="@clockRate.c" scaleFactor="0.5" weight="7.0"/>
但它不起作用
在awk或sed下如何执行此操作?使用sed
sed 'clockRateScaler/s/ weight="7.0"/ weight="7.0"' file.xml
sed '/clockRateScaler/s/weight="7.0"/weight="11.0"/g' file.xml
使用awk
awk '/clockRateScaler/{gsub("weight=\"7.0\"", "weight=\"11.0\"")}1' file.xml
或者使用xmlstarlet
(更好)
你得到
<operator id="clockRateScaler." spec="ScaleOperator" parameter="@clockRate.c" scaleFactor="0.5" weight="11.0"/>
您试图用相同的字符串替换
weight=“7.0”
,但遗漏了一些/
您应该尝试以下命令:
sed '/clockRateScaler/s/weight="7.0"/weight="11.0"/' file.xml
sed '/clockRateScaler/s/weight="7.0"/weight="11.0"/' file.xml