#!/bin/bash list_files() { data_dir=$1 echo "${data_dir} 文件列表:" ls -l "${data_dir}" } check_month_data() { # 设置目标目录 data_dir1=$1 data_dir2=$2 # 获取上个月日期(格式:yyyymm) last_month=$(date -d "1 month ago" +%Y%m) # 存储提取到的所有日期 found_dates=() # 遍历data目录下的所有文件 while IFS= read -r -d $'\0' file; do filename=$(basename "$file") # 使用正则匹配文件名中的6位日期(独立部分) while IFS= read -r date_str; do # 验证日期格式(月份01-12) if [[ $date_str =~ ^([0-9]{4})(0[1-9]|1[0-2])$ ]]; then found_dates+=("$date_str") break # 每个文件只取第一个合法日期 fi done < <(echo "$filename" | grep -oP '(?