Linux
Grep 帶有特殊符號的單詞
我該如何 grep 這個?(包括特殊字元)
"Limit reached."[\n]"
我嘗試反斜杠特殊符號但最終無法正常工作,如下所示:
grep '\"Limit reached\.\"\[\\n\]\" '
我也嘗試了其他技術,但也沒有奏效。您是否可以提出任何其他語法建議/建議?
在 grep 中使用 -F
$ cat test.txt "Limit reached."[\n]" test "Limit reached."[\n]" $ grep -F '"Limit reached."[\n]"' test.txt "Limit reached."[\n]" "Limit reached."[\n]"
根據手冊頁,
-F, --fixed-strings, --fixed-regexp Interpret PATTERN as a list of fixed strings, separated by newlines, any of which is to be matched. (-F is specified by> POSIX, --fixed-regexp is an obsoleted alias, please do not use it new scripts.)
你非常親近。
您不需要 excape
"
,也不能在單引號中使用 shell-escape。因此,所有轉義都是針對 grep,而不是針對 shell。(關於單引號的注意事項:單引號沒有解釋。如果您需要將單引號與單引號字元串一起放置,那麼您必須使用單引號,例如'don'\''t'
)測試
printf "%s" '"Limit reached."[\n]"' | grep '"Limit reached\."\[\\n\]"'