我需要使用 sed 替换 xml 文件中的多行。这是我的输入文件:
<firstTag>Y</firstTag>
<secondTag/>
我想将这些行替换为以下格式:
<firstTag></firstTag>
<secondTag>Y</secondTag>
我尝试使用此命令:
sed -i -r "s#<firstTag>Y</firstTag>\n.*#<firstTag></firstTag>\n<secondTag>Y</secondTag>#g" input.txt
但它不起作用。我还注意到在 secondTag 之前有一些选项卡(^I using less command)。它会影响 sed 命令吗?请帮我解决这个问题。
更新:文件中有多次出现secondTag,我只想在发现firstTag的先前值为Y后才将secondTag值更改为Y。例如,如果在input.txt中:
<firstTag>Y</firstTag>
<secondTag/>
<firstTag/>
<secondTag/>
我希望将其替换为:
<firstTag></firstTag>
<secondTag>Y</secondTag>
<firstTag/>
<secondTag/>