0

我有以下模式

<number>5645646546545656756756757</number>

我正在尝试删除该号码,但无法使其正常工作。

sed 's/.*<number>[0-9]<\/number>.*/replace/g' xml.log
4

3 回答 3

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
于 2013-03-27T08:04:36.740 回答
0

如果要删除数字或标签内的任何字符,可以使用以下内容。所以它不只考虑 <number> 和 </number> 作为标签。

sed 's@\(<[^>]*>\)[^<]*\(<[^>]*>\)@\1\2@g'

如果模式在一行中出现一次,则删除最后一个 g。

于 2013-03-27T15:49:18.557 回答
0

尝试类似:

echo '<number>5645646546545656756756757</number>' | sed 's/.*<number>\([0-9]*\)<\/number>.*/\1/g'
于 2013-03-27T08:04:35.787 回答