繁体   English   中英

grep正则表达式返回实线

[英]grep regular expression returns full line

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

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

示例行是:

abcdefg         keyword   hello, how are you.

结果应该是hello, how are you但它给出了整行。 我在这里做错了吗?

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

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

\\K保持文本匹配到目前为止整个正则表达式匹配。 \\s+匹配一个或多个空格字符。

例:

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

默认情况下,Grep打印匹配的行。 要仅打印匹配的表达式,请尝试使用'-o'选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM