测试

测试

我该如何 grep 这个? (包括特殊字符)

"Limit reached."[\n]"

我尝试反斜杠特殊符号但最终不起作用,如下所示:

grep '\"Limit reached\.\"\[\\n\]\" '

我还尝试了其他技术,但也不起作用。您还有其他语法可以建议/建议吗?

答案1

在 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.)

答案2

你们非常亲密。

您不需要 excape ",并且不能在单引号中使用 shell-escape 。因此,所有转义都是针对 grep 的,而不是针对 shell 的。 (关于单引号的注意事项:单引号确实没有解释。如果您需要在单引号字符串中添加单引号,那么您必须使用单引号,例如'don'\''t')

测试

printf "%s" '"Limit reached."[\n]"' | grep  '"Limit reached\."\[\\n\]"'

相关内容