[Mac/Linux] 用 fgrep 或 grep -F 搜尋(非正規表示法的)固定字串

[Mac/Linux] 用 fgrep 或 grep -F 搜尋(非正規表示法的)固定字串

今天想要從 log 裡面找一個 URL,不過問題是這個 URL 裡面有帶一些特殊符號,

例如 “?” 會被 egrep 辨認為零或一個的出現次數,

而導致我沒辦法用 egrep 直接搜尋整個 URL:

testuser@localhost ~ $ echo "URL: http://g.com/a?b=c is connected." | egrep "http://g.com/a?b=c"

 

找了一下,原來 grep 也還是有支援固定字串的搜尋的,

這樣子不管它要搜尋的字串裡有沒有特殊符號,搜尋起來也都沒有問題了~

舉例來說,可以用 fgrep (fixed-string grep) 來執行:

testuser@localhost ~ $ echo "URL: http://g.com/a?b=c is connected." | fgrep "http://g.com/a?b=c"

 

也可以用 grep -F 選項來執行,效果是一樣的:

testuser@localhost ~ $ echo "URL: http://g.com/a?b=c is connected." | grep -F "http://g.com/a?b=c"

 

參考資料:stackoverflow: Grep not as a regular expression

(本頁面已被瀏覽過 485 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料