find 명령을 사용하여 두 개의 다른 파일을 찾는 방법

find 명령을 사용하여 두 개의 다른 파일을 찾는 방법

딜레마에 빠졌습니다. 내 스크립트가 두 개의 다른 파일을 찾아야 합니다. 타임스탬프 중 하나가 D210929다른 타임스탬프와 유사합니다 20210929. 다음 두 파일이 있습니다.

HGIS4C.IOPZ.IP4.CCCP.D210929.S004596.IO99999.19992.1111.CCCP.IP9999
HGS4C.SCS.CCA1.TSILocationContactData20210929.zip

find내 질문은 명령으로 이 두 파일을 찾는 방법입니다 . 예를 들어

find . -name "TBSI4C.[SCS]*.[D]${DATE}" | grep -c TBSI4C 2>/dev/null

답변1

-name PATTERN다음과 같이 여러 매개변수를 지정할 수 있습니다 .

find . -name PATTERN1 -o -name PATTERN2

답변2

YYYYMMDD쉘 변수의 양식에 날짜가 있다고 가정하면 date날짜의 처음 두 문자를 제거하는 데 사용할 수 있습니다 ${date#??}.

이제 두 가지 패턴 또는 를 find사용하여 현재 디렉터리 또는 현재 디렉터리 아래에서 이름을 검색 할 수 있습니다 .*$date.zip*.D${date#??}.*

find . -type f \( -name "*$date.zip" -o -name "*.D${date#??}.*" \)

위의 명령은 두 파일을 모두 찾습니다(또는 최소한 이 두 파일을 찾습니다). 파일에 대해 특정 작업을 수행하려는 경우 -exec옵션을 사용하여 유틸리티를 호출할 수 있습니다. find파일을 어떻게 사용할 것인지 명시하지 않았기 때문에 여기서 실제적인 예를 제시하는 것은 불가능합니다.

관련 정보