find
이 옵션을 사용하려고 합니다 regex
. 하지만 내 정규식은 파일의 기본 이름만 캡처합니다. 선행을 통해 해석할 필요가 없도록 정규식에서 사용할 수 있는 "현재 디렉토리 조회 위치"에 대한 참조가 있습니까 .*
?
$File::Find::dir
( in perl
모듈 과 같은 것을 찾고 있습니다 File::Find
.)
baz\d
예를 들어, 아래의 정규식과 일치하는 모든 파일을 찾고 싶다고 가정해 보겠습니다 /foo/bar/
. 패턴이 전체 파일 이름과 일치하지 않기 때문에 를 사용하면 이름이 at 인 파일을 find /foo/bar -regex 'baz\d'
찾을 수 없습니다 . 그래서 제가 사용하고 있는 것이 작동하지만 더 강력한 것으로 대체 할 수 있는지 궁금합니다 .baz1
/foo/bar/
baz\d
/foo/bar/baz1
find /foo/bar -regex '.*baz\d'
.*
답변1
정규식 패턴에 슬래시를 포함하여 파일 이름의 시작 부분을 "고정"할 수 있습니다.
find /foo/bar/ -regex '.*/baz\d'
baz1
이렇게 하면 대신 , etc. 파일만 얻을 수 있습니다 bazbaz1
.