[server] ack-grep을 사용하여 리터럴 “> \”검색

문자 그대로 문자보다 큰 문자 ( “>”) 다음에 공백과 백 슬래시 문자 ( “\”)가있는 행을 찾고 있습니다.

나는 탈출하는 것이 이것을 가능하게 할 것이라고 생각했으며, 그보다 더 컸습니다.

  $ ack-grep "\>"

“>”가있는 줄을 반환합니다.

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

  $ ack-grep "\> \\"

ack-grep : 잘못된 정규식 ‘\> \’:
정규식에서 후행 \ / \> /



답변

와우, 나는 너무 가까웠다 … 작은 따옴표 :

$ ack-grep '\> \\'

http://regexpal.com/ 사용하여 정규식 일치가 유효한지 확인한 후

다른 것을 시도하여 작은 따옴표를 사용했습니다.


답변

이것은 또한 작동합니다 :

$ ack-grep '> \\'

그렇습니다 :

$ ack-grep "> \\\\"

보다 큼을 피할 필요는 없습니다.


답변

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

ack-grep --literal '> \'


답변

여기서 문제는 ack가 아니라 쉘 인용과 관련이 있습니다. “> \”를 인수로 전달하려는 모든 프로그램에서이 문제가 발생합니다.


답변