我想搜索一堆目录以查找丢失的文件。目录和文件的格式为 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