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