簡體   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