要将固定日期的实现修改为每周六到上周日,您可以使用date
命令结合条件判断来进行日期的计算。以下是一个示例代码:
# 获取当前日期
current_date=$(date "+%Y%m%d")
# 统计当前日期是星期几(0表示星期日,1表示星期一,以此类推)
current_day=$(date -d "$current_date" "+%w")
# 计算当前日期所在周的周六和上周日的日期
start_date=$(date -d "$current_date - $current_day days + 6 days" "+%Y%m%d")
end_date=$(date -d "$current_date - $current_day days - 1 day" "+%Y%m%d")
# 遍历日期范围内的每一天并处理相应的文件夹
current_timestamp=$(date -d "$start_date" "+%s")
end_timestamp=$(date -d "$end_date" "+%s")
while [ "$current_timestamp" -le "$end_timestamp" ]; do
current_date=$(date -d "@$current_timestamp" "+%Y%m%d")
folder_path="/path/to/folders/$current_date"
# 处理文件夹内的文件
for file in "$folder_path"/*; do
if [ -f "$file" ]; then
# 执行您需要的操作,例如读取文件内容
echo "处理文件:$file"
cat "$file"
fi
done
# 增加一天的时间
current_timestamp=$(date -d "@$current_timestamp + 1 day" "+%s")
done
在上述示例中,代码会计算当前日期所在周的周六到上周日的日期范围,并遍历每个日期进行文件处理。您需要将/path/to/folders/
替换为您实际文件夹的路径。其他部分的代码保持不变。
请注意,这里的计算是基于当前日期进行的,如果想要以其它日期为基准,可以将current_date
替换为所需日期。
希望这个修改能够满足您的需求!如果您有其他问题,请随时提问。