[英]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.