이름+1900-1990+이름을 포함하는 폴더 찾기

이름+1900-1990+이름을 포함하는 폴더 찾기

ex.가 포함된 많은 폴더를 검색하려고 합니다. Events.1900-1990.events. 나는 폴더를 앞에두고 싶지 않습니다. 를 사용하면 Events.2004폴더에만 1900년 -> 1990년의 연도가 포함됩니다.

이름은 Event생일, 전쟁 등 무엇이든 될 수 있습니다.

나는 다음과 같은 것을 시도했습니다 :

find . -type d -regex '*/[a-z][A-Z]/19+\[0-9]*' -print

하지만 아무것도 발견하지 못했어

답변1

find . -type d '(' -name '*19[0-8][0-9]*' -o -name '*1990*' ')'

이름에 1900에서 1990 사이의 숫자가 포함된 현재 디렉터리 내 또는 그 아래의 모든 디렉터리를 찾습니다. 테스트는 파일명을 기준으로 두 부분으로 나누어지며, 첫 번째 테스트는 1900~1989 사이의 숫자이고, 두 번째 테스트는 1990이다.

이 경우 정규식을 사용할 필요가 없습니다. 위 패턴은 파일 이름 와일드카드 패턴입니다.

파일 이름 접미사에 대한 테스트를 추가하려면 다음 .events두 가지 방법으로 수행할 수 있습니다.

find . -type d -name '*.events' '(' -name '*19[0-8][0-9]*' -o -name '*1990*' ')' 

find . -type d '(' -name '*19[0-8][0-9]*.events' -o -name '*1990*.events' ')'

*귀하의 명령은 정규식 시작 부분의 a 와 일치하는 문자를 찾지 않습니다 *. [문자와 일치하도록 표현식의 문자 중 하나를 이스케이프할 수도 있습니다 [.

관련 정보