찾기와 함께 정규식 그룹 사용

찾기와 함께 정규식 그룹 사용

.pem파일 목록이 주어지면 또는 로 끝나는 모든 파일을 찾고 싶습니다 .cer. 이 명령은 PEM을 찾는 데 작동합니다.

find . -d 1 -regex ".*\.pem"

하지만 이 명령은 아무것도 찾지 못합니다.

find . -d 1 -regex ".*\.(pem|cer)"

이 구문은 BBedit 패턴 놀이터에서 작동합니다. find에서 정규식 그룹을 사용하는 방법이 있나요?

답변1

나는 이것을 위해 정규 표현식을 사용하지 않고 대신 다음을 사용합니다.

find . -name "*.pem" -o -name '*.cer'

정규 표현식을 구문 분석하는 데 CPU 시간이 더 많이 들기 때문에 더 빠를 수도 있습니다(여기서는 몇 초에 불과합니다).

편집하다:

이제 Hannu의 의견을 보니 (원래 시도한 명령을 기반으로) 아마도 하위 디렉터리를 확인하고 싶지 않을 수도 있다는 것을 알 수 있습니다. 이 경우 다음과 같습니다.

find . -maxdepth 1 -name "*.pem" -o -name '*.cer'

답변2

이 명령은 아무것도 찾지 못합니다.

find . -d 1 -regex ".*\.(pem|cer)"

'대신 다음 과 같이 "이스케이프를 사용해야 합니다 .()

find . -d 1 -regex '.*\.\(pem|cer\)'

관련 정보