循环搜索不同的文件名

循环搜索不同的文件名

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

相关内容