찾기: egrep에서 정규 표현식이 작동하지 않는 이유는 무엇입니까?

찾기: egrep에서 정규 표현식이 작동하지 않는 이유는 무엇입니까?

파이프가 없는 첫 번째 예는 공백을 반환합니다.

find /tmp/txz/httperf/httperf-20210403git/ -regextype posix-egrep -regex [A-Z][A-Z]$

두 번째는 내가 원하는 것을 반환합니다. 모든 파일은 대문자로 되어 있습니다. 왜 find 명령이 아무 것도 반환하지 않습니까?

find /tmp/txz/httperf/httperf-20210403git/ |egrep [A-Z][A-Z]$ 
/tmp/txz/httperf/httperf-20210403git/.git/refs/remotes/origin/HEAD
/tmp/txz/httperf/httperf-20210403git/.git/logs/refs/remotes/origin/HEAD
/tmp/txz/httperf/httperf-20210403git/.git/logs/HEAD
/tmp/txz/httperf/httperf-20210403git/.git/HEAD
/tmp/txz/httperf/httperf-20210403git/NEWS
/tmp/txz/httperf/httperf-20210403git/COPYRIGHT
/tmp/txz/httperf/httperf-20210403git/AUTHORS
/tmp/txz/httperf/httperf-20210403git/TODO
/tmp/txz/httperf/httperf-20210403git/src/lib/README

또한 정규식 유형에 대해 posix-extended 및 posix-basic을 시도했지만 비어 있는 결과가 반환됩니다.

답변1

POSIX가 find지정되지 않았 으므로 -regexGNU로 가정합니다 find.

테스트: -regex expr
테스트: -iregex expr
전체 파일 이름이 정규식과 일치하면 참입니다 expr.이는 검색이 아닌 전체 경로의 일치입니다.[…]

(원천, 강조 내)

를 사용해야 합니다 -regex '.*[A-Z][A-Z]'. 셸에 의한 확장을 방지하기 위해 표현식은 작은따옴표로 묶여 있습니다.

관련 정보