0
$ echo 'HI' | grep '\w*'
HI
$ echo 'HI' | grep '\w+'
$ echo 'HI' | grep '\w{2}'
對於案例2 & 3,grep必須返回'HI',但不返回任何內容。我在尋求什麼是錯的?grep with linux中的正則表達式功能
$ echo 'HI' | grep '\w*'
HI
$ echo 'HI' | grep '\w+'
$ echo 'HI' | grep '\w{2}'
對於案例2 & 3,grep必須返回'HI',但不返回任何內容。我在尋求什麼是錯的?grep with linux中的正則表達式功能
純正形式的正則表達式正是Global Regular Expression Print所支持的。在80年代後期,在grep創建近20年後,Perl正則表達式引入了\w
轉義。 GNU grep套件在其文檔中提到了一個命令pgrep
,但您可能最好不要學習差異,並學習使用grep傳統的正則表達式。
只需添加一個-P開關打開PCRE(Perl兼容正則表達式) – magnetar
是的,有什麼問題。你讀過你收到的回覆了嗎?在grep的正則表達式語法中,'\ w'匹配文字w,'+'匹配文字加號。 (在這種情況下,無論如何都是多餘的,因爲如果匹配的話grep會打印整個輸入行)。您正在尋找'echo hi | grep -i'[a-z]''或者如果你真的堅持使用Perl的正則表達式'echo hi | perl -ne'print if/\ w /'' – tripleee
GNU'grep'支持'-G'(BRE:基本正則表達式),'-E'(ERE:擴展正則表達式),'-F'(固定字符串,但是可以選擇其中的很多)和'-P'(Perl正則表達式 - 儘管它沒有明確說明Perl的哪個版本)。如果你有GNU'grep'並且想要Perl風格的正則表達式,可以使用'grep -P'^ \ w {2} $''或其他什麼。 –