다른 파일 이름을 통해 반복

다른 파일 이름을 통해 반복

누락된 파일이 있는지 여러 디렉토리를 검색하고 싶습니다. 디렉터리와 파일의 형식은 YYYY/MM/file_name_YYYYMMDD.csv입니다. 그래서 제가 하고 싶은 일은 다음과 같습니다.

for date in `list_of_dates.txt`
do
 if [! -f /YYYY/MM/file_name_YYYYMMDD.csv]
   echo $date
 fi

각 반복이 올바른 디렉터리에서 올바른 파일을 찾도록 하려면 어떻게 해야 할지 모르겠습니다. Bash 스크립트에서 이를 수행할 수 있는 방법이 있습니까?

답변1

for dir in ????/??; do
    year=${dir:0:4}
    month=${dir:5}
    days=$(cal "$month" "$year" | awk 'NF {DAYS = $NF}; END {print DAYS}') 
    for date in seq 1 "$days"; do
        filename="file_name_${year}${month}${date}.csv"
        if [[ ! -f /"$year"/"$month"/"$filename" ]]; then
            echo "$filename is missing."
        fi
    done
done

관련 정보