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