2015-11-24 62 views
3

我有一个txt文件是这样的:如何使用grep从文件中检索匹配的文本?

asdfasdf 
ffaCover 91adf 
ffffa 

我想用grep或一些Linux工具捕获“盖”后面的空格后的1个或2位数字。在一些编程语言中,我会使用正则表达式库来匹配/^Cover(\ d \ d?)$ /。然后有一些方法可以得到括号内的1或2位数字。有没有办法使用grep来做到这一点?

+0

'grep -o'或'cut -f'。 – bishop

回答

2

我一直做这样的事情:

grep -Po '(?<=Cover\s)(\d\d?)' 

-o选项grep使它只打印模式,不包括零宽度向后断言相匹配的部分。

但是,我不知道anubhava之前答案中的\K选项,这看起来更清晰。

+0

我结束了这个,因为我所在的Windows系统似乎不支持\ K选项。 –

2

只是管grep -oP

在PCRE正则表达式
grep -Po 'Cover \K[0-9]{1,2}' 
91 

\K重置所有先前匹配的信息。

相关问题