# minimal example file
printf "hey\$you\nhey\$me\n" > test
cat test
# hey$you
# hey$me
간단히 grep
말해서:
grep -F "hey$you" test
# hey$you
# hey$me
즉, 첫 번째 행만 일치해야 할 때 두 행이 모두 일치합니다.
탈출하면 $
예상대로 작동합니다.
grep -F "hey\$you" test
# hey$you
그러나 이것은 나의 이해에 어긋난다 -F
/--fixed-strings
패턴을 고정된 문자열 집합으로 해석합니다(즉,
grep
동작을 강제로fgrep
).
man fgrep
특별한 것도 없습니다 $
.
macOS 및 Ubuntu에서 복사
답변1
이것껍데기$you
"약한"(이중) 참조를 사용했기 때문에 (아마도 비어 있는) 변수로 확장됩니다 .
x
셸의 옵션을 설정하여 이를 확인할 수 있습니다 .
$ grep -F "hey$you" test
+ grep --color=auto -F hey test
# hey$you
# hey$me
보시다시피 "hey$you"
간단해집니다 hey
. 두 행을 일치시킵니다.
대신 패턴 주위에 큰따옴표(작은따옴표)를 사용하세요.
$ grep -F 'hey$you' test
+ grep --color=auto -F 'hey$you' test
# hey$you