我有以下模式
<number>5645646546545656756756757</number>
我正在尝试删除该号码但无法使其正常工作。
sed 's/.*<number>[0-9]<\/number>.*/replace/g' xml.log
答案 0 :(得分:3)
如果您要删除标签和号码:
sed 's@<number>[0-9]*</number>@replace@g' xml.log
如果您要删除号码:
sed 's@<number>[0-9]*</number>@<number></number>@g' xml.log
如果要进行就地替换(在文件中),请添加-i
:
sed -i 's@<number>[0-9]*</number>@replace@g' xml.log
答案 1 :(得分:0)
尝试类似:
echo '<number>5645646546545656756756757</number>' | sed 's/.*<number>\([0-9]*\)<\/number>.*/\1/g'
答案 2 :(得分:0)
如果您想删除数字或标签内的任何字符,您可以使用以下内容。所以它不仅仅考虑&lt; number&gt;和&lt; / number&gt;作为标签。
sed 's@\(<[^>]*>\)[^<]*\(<[^>]*>\)@\1\2@g'
删除最后一个if中的g,一行中出现一次。