从bash的XML文件中删除特定的标签

问题描述 投票:1回答:2

我需要删除这样的字符串:

<test-test1 type:name="text.here"/>

.xml文件。

我试过,例如:

variable="<test-test1 type:name=\"text.here\"/>"
sed -i 's|${variable}||g' file.xml

但它不工作。

我怎样才能做到这一点?

谢谢

xml shell unix xml-parsing
2个回答
0
投票

我创建了一个Python脚本来为你做到这一点。的内容复制到filename.py,应用sudo chmod +x filename.py并执行脚本。我以为你用file1.xml为XML文件。

#!/usr/bin/python
import re

your_content: "the words to replace the string"

# here we read the file in Python
fh = open("file1.xml", "r")
content = fh.read()

# Here we match the string, it matches content between  =name=" and \
m = re.sub(r'(?<=name=\")(.*)(?=\")', your_content, content)

print(m)

# now you probably want to write to the file
x = open("file1.xml", "w")
x.write(m)

注意,Python 3中工作也是如此。


0
投票

使用double-quotes for variables, not single-quotes

variable="<test-test1 type:name=\"text.here\"/>"
sed -i 's|'"${variable}"'||g' file.xml
© www.soinside.com 2019 - 2024. All rights reserved.