Cyr*_*ril 5 linux grep special-characters
我如何 grep 这个?(包括特殊字符)
"Limit reached."[\n]"
Run Code Online (Sandbox Code Playgroud)
我尝试反斜杠特殊符号,但最终不起作用,如下所示:
grep '\"Limit reached\.\"\[\\n\]\" '
Run Code Online (Sandbox Code Playgroud)
我也尝试了其他技术,但也没有奏效。您可以建议/建议任何其他语法吗?
小智 11
在 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]"
Run Code Online (Sandbox Code Playgroud)
根据手册页,
Run Code Online (Sandbox Code Playgroud)-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\]"'
Run Code Online (Sandbox Code Playgroud)