gpt4 book ai didi

xml - 使用sed修改xml文件

转载 作者:行者123 更新时间:2023-12-02 17:42:58 28 4
gpt4 key购买 nike

我需要在 xml 文件中搜索位于开始/结束标记内的一些文本,如果找到,则在结束标记之前写一行文本。

例如,在XML 文件 中,我需要在MyTag 中搜索“MyText1”。如果找到,请在结束标记之前添加 FoundIt,如下所示

 <MyTag>
<Tag1>MyText1</Tag1>
<Tag2>MyText2</Tag2>
<Tag3>MyText3</Tag3>
<Tag4>MyText4</Tag4>
<FoundTag1>FoundIt</FoundTag1>
</MyTag>

我能够使用 sed 搜索范围并打印 MyText1。但我真正想要做的是在结束标记之前添加“FoundIt”标记。

Sed 脚本

/<MyTag>/,/<\/MyTag>/{
/<Tag1>MyText1</Tag1>/p
}

XML 文件内容

<XmlFile>

<BeginTag>
<SomeTag>Text</SomeTag>
</BegingTag>

<MyTag>
<Tag1>MyText1</Tag1>
<Tag2>MyText2</Tag2>
<Tag3>MyText3</Tag3>
<Tag4>MyText4</Tag4>
</MyTag>

<EndTag>
<SomeTag>Text</SomeTag>
</EndTag>

</XmlFile>

最佳答案

这可能对你有用(GNU sed):

sed '/<MyTag>/!b;:a;/<\/MyTag>/!{$!{N;ba}};/MyText1/s/.*\n/&<FoundTag1>FoundIt<\/FoundTag1>\n/' xml_file

查找包含 <MyTag> 的行如果不纾困。一旦找到,收集行直到行 </MyTag>发生,然后检查这些行是否包含 MyText1如果是这样,请替换 <FoundTag1>FoundIt</FoundTag1>在收集的最后一行之前跟一个新行。

关于xml - 使用sed修改xml文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18166862/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com