
문자 그대로 문자보다 큰 문자(">")와 공백, 백슬래시 문자("\")가 차례로 있는 줄을 찾고 있습니다. 즉, 다음과 같은 줄을 찾고 있습니다. > \
나는 탈출이 이것을 허용할 것이라고 생각했고, 그보다 더 큰 것은 다음과 같습니다:
$ ack-grep "\> "
"> "가 포함된 행을 반환합니다.
그러나 백슬래시를 벗어나려고 하면 다음과 같은 결과가 나타납니다.
$ ack-grep "\> \\"
ack-grep: 잘못된 정규식 '\> \':
정규식 m/\>의 후행 \
답변1
와, 난 너무 가까웠어... 작은따옴표:
$ ack-grep '\> \\'
다음을 사용하여 정규식 일치가 유효한지 확인한 후 이를 알아냈습니다. http://regexpal.com/ 우연히 다른 것을 시도하면서 작은따옴표가 생겼습니다.
답변2
이것은 또한 작동합니다:
$ ack-grep '> \\'
그리고 그렇습니다:
$ ack-grep "> \\\\"
보다 큼은 이스케이프할 필요가 없습니다.
답변3
리터럴 문자열을 검색하려면 리터럴 옵션을 사용하십시오.
ack-grep --literal '> \'
답변4
여기서 문제는 ack가 아니라 쉘 인용에 관한 것입니다. "> \"를 인수로 전달하려는 모든 프로그램에서 이 문제가 발생합니다.