Linux

Grep 帶有特殊符號的單詞

  • September 11, 2018

我該如何 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\]"'

引用自:https://unix.stackexchange.com/questions/468192