sed:删除文件中的标记xml

时间:2015-07-20 12:17:24

标签: xml bash sed

我有一个xml文件,例如:

<permission>hudson.model.Item.Read:signum</permission>
<permission>hudson.model.Item.Write:signum</permission>
<permission>hudson.model.Item.Configure:signum</permission>
<permission>hudson.model.Item.Read:signum2</permission>
<permission>hudson.model.Item.Write:signum2</permission>
<permission>hudson.model.Item.Configure:signum2</permission>

我想删除所有部分:

<permission>text:signum</permission>

我正在尝试:

sed -i "s/<permission>.*(:danilo<\/permission>)//g" $URL_FILE

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

string()不是处理XML的正确工具。使用正确解析输入的正确XML处理工具。我通常使用xsh

sed

答案 1 :(得分:0)

你必须逃离</permission>中的/,如果我理解你的请求,d命令将允许你删除与模式匹配的行

sed '/<\/permission>/d' $file