![패턴으로 파일을 찾지만 유사한 패턴을 가진 다른 파일은 무시합니다.](https://linux55.com/image/196638/%ED%8C%A8%ED%84%B4%EC%9C%BC%EB%A1%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%B0%BE%EC%A7%80%EB%A7%8C%20%EC%9C%A0%EC%82%AC%ED%95%9C%20%ED%8C%A8%ED%84%B4%EC%9D%84%20%EA%B0%80%EC%A7%84%20%EB%8B%A4%EB%A5%B8%20%ED%8C%8C%EC%9D%BC%EC%9D%80%20%EB%AC%B4%EC%8B%9C%ED%95%A9%EB%8B%88%EB%8B%A4..png)
하위 디렉터리가 포함된 디렉터리가 있고 그 중 일부의 이름을 가져와야 하지만 무시하고 싶은 유사한 패턴을 가진 하위 디렉터리가 있습니다.
예를 들어, 하위 디렉터리 목록이 다음과 같은 경우:
Name_One
Not_needed1
Name_Two
Name_Three
Not_needed2
Name_Zero
하위 디렉터리 Name_One, Name_Two 및 Name_Three의 이름을 변수에 저장하고 싶지만 Name_0은 무시하고 싶습니다.
또한 프로젝트마다 이름이 바뀌지만 항상 Name_Number의 패턴을 따르며 Name_Zero는 항상 제외해야 하는 이름입니다.
저는 Mac 운영 체제를 사용하고 있습니다.
답변1
노력하다:
find . -type d -name 'Name_*' ! -name 'Name_Zero'
디렉토리 이름의 경우 Name_[digit]
및 디렉토리 제외 Name_0
.
find . -type d ! -name 'Name_0' -regex './Name_[0-9]*'
하위 디렉터리도 있는 경우 다음 명령을 사용합니다.
find . -type d ! -name 'Name_0' -regex '.*/Name_[0-9]*'
위의 정규식은 패턴과 일치하는 디렉토리 이름과 일치합니다 Name_[zero-or-more-digits]
. 일치를 방지하려면 Name_
대신 사용하십시오 '.*/Name_[0-9][0-9]*'
.