파일을 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은 전체 줄을 나타냅니다.