使用bash脚本添加/删除xml标签
发布时间:2020-12-15 19:10:18 所属栏目:安全 来源:网络整理
导读:我有一个我想使用bash脚本进行配置的xml文件。例如,如果我有这个xml: a b bb yyy Bla /yyy /bb /b c cc Something /cc /c d bla /d/a (删除机密信息) 我想编写一个bash脚本,将删除 b (或评论它),但保持其余的xml完好无损。我是整个脚本的新东西。我想知
我有一个我想使用bash脚本进行配置的xml文件。例如,如果我有这个xml:
<a> <b> <bb> <yyy> Bla </yyy> </bb> </b> <c> <cc> Something </cc> </c> <d> bla </d> </a> (删除机密信息) 我想编写一个bash脚本,将删除< b> (或评论它),但保持其余的xml完好无损。我是整个脚本的新东西。我想知道有没有人可以给我一个提示,我应该研究一下。 我以为可以使用sed,除了sed是一个线编辑器。我认为很容易删除< b>标签,但我不确定sed是否能够删除< b>之间的所有文本。标签。 我还需要写一个脚本来添加删除的部分。
这在sed中并不难,因为sed也适用于范围。
尝试这个(假设xml在一个名为foo.xml的文件中): sed -i '/<b>/,/</b>/d' foo.xml -i会将更改写入原始文件(使用-i.bak保留原始文件的备份副本) 该sed命令将对范围指定的所有行执行动作d(删除) # all of the lines between a line that matches <b> # and the next line that matches </b>,inclusive /<b>/,/</b>/ 所以,用简单的英文,这个命令将删除< b>之间的行之间的所有行并且带有< / b>的行 如果你想排除这些行,请尝试以下方法之一: # block comment sed -i 's/<b>/<!-- <b>/; s/</b>/</b> -->/' foo.xml # comment out every line in the range sed -i '/<b>/,/</b>/s/.*/<!-- & -->/' foo.xml (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |