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 와 일치하는 문자를 찾지 않습니다 *
. [
문자와 일치하도록 표현식의 문자 중 하나를 이스케이프할 수도 있습니다 [
.