我正在编写一个bash脚本,我想在ggrep中使用后面的代码来查找字符串中的特定值。
在构建概念验证示例时,我可以在使用grep时返回结果,但是它给了我整行而不是我指定的lookbehind之前的那些:
$echo "this and that 12 those" | ggrep -P '(?<=this\sand\sthat)[\s\d]+'
this and that 12 those
我原本希望得到" 12 "
,但却获得了整条线。
我在这里缺少什么?
如果有帮助的话,我正在使用以下版本的ggrep使用自制软件:
$ ggrep --version
ggrep (GNU grep) 2.14.56-1e3d
答案 0 :(得分:1)
您必须添加-o
选项。
-o, --only-matching
Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line.
这一行变为:
echo "this and that 12 those" | ggrep -o -P '(?<=this\sand\sthat)[\s\d]+'