別のファイル名で繰り返し

別のファイル名で繰り返し

欠落しているファイルがあるかどうか、複数のディレクトリを検索したいと思います。ディレクトリとファイルの形式は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

おすすめ記事