我试图使用grep在关键字后打印所有内容,但命令返回整行。我正在使用以下内容:
grep -P (\skeyword\s)(.*)
示例行是:
abcdefg keyword hello, how are you.
结果应该是,hello, how are you
但是却给出了完整的一行。我在这里做错什么了吗?
您需要使用-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] 删除。
我来说两句