grep正则表达式返回整行

阿比舍克·塔库尔

我试图使用grep在关键字后打印所有内容,但命令返回整行。我正在使用以下内容:

grep -P (\skeyword\s)(.*)

示例行是:

abcdefg         keyword   hello, how are you.

结果应该是,hello, how are you但是却给出了完整的一行。我在这里做错什么了吗?

阿维纳什·拉吉(Avinash Raj)

您需要使用-o仅匹配)参数和\K丢弃先前匹配的字符)或正向查找。

grep -oP '\skeyword\s+\K.*' file

\K使文本匹配的内容与总体正则表达式匹配的内容相差无几。\s+匹配一个或多个空格字符。

例子:

$ echo 'abcdefg         keyword   hello, how are you.' | grep -oP '\skeyword\s+\K.*'
hello, how are you.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章