我有以下模式
<number>5645646546545656756756757</number>
我正在尝试删除该号码,但无法使其正常工作。
sed 's/.*<number>[0-9]<\/number>.*/replace/g' xml.log
如果要删除标签和数字:
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
如果要删除数字或标签内的任何字符,可以使用以下内容。所以它不只考虑 <number> 和 </number> 作为标签。
sed 's@\(<[^>]*>\)[^<]*\(<[^>]*>\)@\1\2@g'
如果模式在一行中出现一次,则删除最后一个 g。
尝试类似:
echo '<number>5645646546545656756756757</number>' | sed 's/.*<number>\([0-9]*\)<\/number>.*/\1/g'