이것을 어떻게 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
당신은 매우 가깝습니다.
Excap이 필요하지 않으며 "
작은 따옴표 안에 쉘 이스케이프를 사용할 수 없습니다. 따라서 모든 이스케이프는 쉘이 아닌 grep을 위한 것입니다. (작은 따옴표에 대한 참고 사항: 작은 따옴표는설명이 없다. 작은따옴표로 묶인 문자열 안에 작은따옴표를 추가해야 하는 경우 작은따옴표를 사용해야 합니다. 예: 'don'\''t'
)
시험
printf "%s" '"Limit reached."[\n]"' | grep '"Limit reached\."\[\\n\]"'