딜레마에 빠졌습니다. 내 스크립트가 두 개의 다른 파일을 찾아야 합니다. 타임스탬프 중 하나가 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
파일을 어떻게 사용할 것인지 명시하지 않았기 때문에 여기서 실제적인 예를 제시하는 것은 불가능합니다.