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