ack-grep을 사용하여 리터럴 "> \" 검색

ack-grep을 사용하여 리터럴 "> \" 검색

문자 그대로 문자보다 큰 문자(">")와 공백, 백슬래시 문자("\")가 차례로 있는 줄을 찾고 있습니다. 즉, 다음과 같은 줄을 찾고 있습니다. > \

나는 탈출이 이것을 허용할 것이라고 생각했고, 그보다 더 큰 것은 다음과 같습니다:

  $ ack-grep "\> "

"> "가 포함된 행을 반환합니다.

그러나 백슬래시를 벗어나려고 하면 다음과 같은 결과가 나타납니다.

  $ ack-grep "\> \\"

ack-grep: 잘못된 정규식 '\> \':
정규식 m/\>의 후행 \

답변1

와, 난 너무 가까웠어... 작은따옴표:

$ ack-grep '\> \\'

다음을 사용하여 정규식 일치가 유효한지 확인한 후 이를 알아냈습니다. http://regexpal.com/ 우연히 다른 것을 시도하면서 작은따옴표가 생겼습니다.

답변2

이것은 또한 작동합니다:

$ ack-grep '> \\'

그리고 그렇습니다:

$ ack-grep "> \\\\"

보다 큼은 이스케이프할 필요가 없습니다.

답변3

리터럴 문자열을 검색하려면 리터럴 옵션을 사용하십시오.

ack-grep --literal '> \'

답변4

여기서 문제는 ack가 아니라 쉘 인용에 관한 것입니다. "> \"를 인수로 전달하려는 모든 프로그램에서 이 문제가 발생합니다.

관련 정보