답변:
쉘 해석되는 \$
등 그렙로를 통과 $
광고 문자의 끝. 따라서 라인이 끝났다고 가정하면 일치합니다 :-)
$
grep에서 실제와 일치 시키려면 다음 중 하나를 사용하십시오.
grep \\\$
grep '\$'
이전에, 쉘 해석은 \\
같은 \
과 \$
같은 $
, 부여 \$
. 후자에서는 전혀 해석하지 않습니다.
\$
두 문자 시퀀스가 아닌 달러 기호와 왜 일치 하는지에 대한 귀하의 질문에 관해서 는, grep
어떤 목적으로 특수 문자를 사용 하는 것과 같은 정규 표현식이 사용 됩니다. 그 중 일부는 다음과 같습니다.
$ end of line
^ start of line
. any character
+ 1 or more of the preceeding pattern
* 0 or more of the preceeding pattern
{n,m} between n and m of the preceeding pattern
[x-y] any character between x and y (such as [0-9] for a digit).
많은 다른 사람들과 함께.
일반적으로 특수 문자로 취급되는 문자를 일치 시키려면이 문자를 이스케이프 grep
처리하여 일반 문자로 취급해야합니다.
ls \$
좋고 (ls : $ : 해당 파일이나 디렉토리가 없음), \ $가 $로 이스케이프 처리되지 않았지만 \\ $가 \ $로 이스케이프 처리되지 않음 등을 확인하십시오.
쉘은 먼저 인수를 프로그램에 전달하기 전에 모든 이스케이프 시퀀스를 확장하므로 이스케이프 시퀀스로 해석 \$
하고 단일 인수 $
를 grep
행 끝과 일치시키는 로 전달합니다 . 모든 줄에는 끝이 있으므로 모든 줄은 다음과 일치해야합니다. :)
줄 끝 메타 문자로 해석되고 있습니다. 실제 달러 기호와 일치 시키려면
$ grep \\$
또는
$ grep '\$'
echo \$
다음echo \\$