Regex sed从模式中删除带编号的内容

Regex sed从模式中删除带编号的内容,regex,sed,Regex,Sed,我有下面的模式 <number>5645646546545656756756757</number> 56456465456756756757 我正在尝试删除该号码,但无法使其正常工作 sed 's/.*<number>[0-9]<\/number>.*/replace/g' xml.log sed's/*[0-9].*/replace/g'xml.log 尝试以下方法: echo '<number>564564654654565

我有下面的模式

<number>5645646546545656756756757</number>
56456465456756756757
我正在尝试删除该号码,但无法使其正常工作

sed 's/.*<number>[0-9]<\/number>.*/replace/g' xml.log
sed's/*[0-9].*/replace/g'xml.log
尝试以下方法:

echo '<number>5645646546545656756756757</number>' | sed 's/.*<number>\([0-9]*\)<\/number>.*/\1/g'
echo'56456465456756756757'| sed's/*\([0-9]*\)./\1/g'
尝试以下方法:

echo '<number>5645646546545656756756757</number>' | sed 's/.*<number>\([0-9]*\)<\/number>.*/\1/g'
echo'56456465456756756757'| sed's/*\([0-9]*\)./\1/g'

如果要删除标签和号码:

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

如果要删除标签和编号:

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

如果要删除标记中的数字或任何字符,可以使用以下命令。因此,它不仅将and视为标记

sed 's@\(<[^>]*>\)[^<]*\(<[^>]*>\)@\1\2@g' sed的@\(]*>\)[^\)@\1\2@g'
删除最后一个if模式中的g。如果要删除标记中的数字或任何字符,可以使用以下命令。因此,它不只是将and作为标记

sed 's@\(<[^>]*>\)[^<]*\(<[^>]*>\)@\1\2@g' sed的@\(]*>\)[^\)@\1\2@g'
如果模式在一行中出现一次,则在最后一行中删除g。

我不确定sed中的[0-9]是否应该是[0-9]+?sed历史上使用BRE not EREs,因此它将理解[0-9]*而不是[0-9]+。您需要在sed中使用[0-9][0-9]*以便于移植模仿[0-9]+。我不确定sed中的[0-9]是否应该是[0-9]历史上使用BRE而不是ErES,所以它将理解[09] *但不[09] +。在SED中需要[09] [09] *可移植的模拟[09] +。谢谢!确切地回答。考虑<代码> SED S @ \(\)9[*9] *(@ 1)2@g“XML.Log”所以你不需要复制你的标签。谢谢!正是答案。考虑<代码> SED s @ \(\)[09] *(@\1\2@g'xml.log这样您就不需要重复标记了。