시험

시험

이것을 어떻게 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\]"'

관련 정보