환경 변수에 슬래시가 포함된 콘텐츠를 찾는 방법은 무엇입니까?

환경 변수에 슬래시가 포함된 콘텐츠를 찾는 방법은 무엇입니까?

파일을 grep하고 특정 환경 변수(정확히 말하면 $PWD)가 있는 모든 줄을 가져오고 싶습니다.

물론 그냥 사용하세요

cat file | grep '/'$PWD'/'

슬래시가 포함되어 있으므로 작동하지 않습니다 $PWD.

나는 이것을 올바르게 수행하는 방법을 찾으려고 노력하고 있지만 이상하고 지나치게 복잡한 해결책을 생각해 냈습니다. 이를 수행하는 쉬운 방법이 있습니까?

답변1

작은 따옴표 대신 큰 따옴표를 사용하면 됩니다 cat(참조:우루무치대학교):

grep -F -- "$PWD" file

-F아무 것도 발견되지 않으면 찾을 $PWD문자열이 아닌 정규식으로 처리된다는 점을 명심하십시오 file.

답변2

슬래시는 특수 문자가 아니므로 자유롭게 사용할 수 있습니다.

grep "$PWD/" file

뒤에 /를 추가해도 아무런 문제가 발생하지 않습니다. 그러나 슬래시는 awk 및 sed에서 특수 문자입니다. 패턴은 / /로 묶입니다. 이 경우 다음을 사용할 수 있습니다.

awk -v pattern="$PWD/" '$0 ~ pattern' file

awk /pattern/ {action} 구문을 사용하지 마세요. 여기서 "~"는 일치 연산자이고 $0은 전체 줄을 나타냅니다.

관련 정보