我有这样一个txt文件:
asdfasdf ffaCover 91adf ffffa
我想使用grep或者一些linux工具来捕获“Cover”之后的空格之后的1或2个数字。 在一些编程语言中,我将使用正则expression式库来匹配/ ^ Cover(\ d \ d?)$ /。 然后有一些方法可以得到括号内的1或2位数字。 有没有办法使用grep来做到这一点?
我一直这样做:
grep -Po '(?<=Cover\s)(\d\d?)'
grep
的-o
选项使得它仅打印模式的匹配部分,其不包括零宽度后向断言。
但是,我之前并不知道anubhava答案中的\K
选项,这看起来更清晰。
只需管道grep -oP
:
grep -Po 'Cover \K[0-9]{1,2}' 91
\K
PCRE正则表达式中的\K
重置所有以前匹配的信息。