2014-02-05 260 views
-2

我需要做这样的事情正则表达式来之前删除一切,包括正则表达式

输入:

text text text text text text text Total number = 2 remaining remaining remaining 
text text text text text text Total number = 10 remaining remaining 
text text text text text text Total number = 3 remaining remaining

什么,我试图做的是提取后一切

Total number = x
所以,

总数= x也应该去掉,总之第一个“剩余”部分应该是第一个 这个词在每一行中,就像这样:

Ou tput的:

remaining remaining remaining 
remaining remaining 
remaining remaining
+0

只能匹配正则表达式,你不能删除/替换。这取决于你使用的是什么语言。 – tenub

+0

简单来说:'。* *总数= [\ d] +'? – MElliott

+0

对不起,我试图做一个bash脚本来做到这一点,我试过sed'0,/ /d'inputfile>输出文件,它正在删除日志文件中的所有内容,包括正则表达式本身...现在我需要类似于在每行日志文件中执行的操作... – skymario84

回答

1

用awk:

awk -F 'Total number = [0-9]+ *' '{print $2}' file 
remaining remaining remaining 
remaining remaining 
remaining remaining 
+0

谢谢,真的很快,像一个魅力,最好的问候... – skymario84

+0

不客气,很高兴它解决了。 – anubhava

1

没有指定的语言,但在这里有云:

的sed:

s/^.*Total number = [[:digit:]]*[[:space:]]*// 

AWK:

{ gsub("^.*Total number = [[:digit:]]*[[:space:]]*", "") ; print } 
0

使用此正则表达式

.*Total number =\s*\d+\s* (.*) 

Demo