如果当前日期为周日,并且您想要遍历上周六到本周五的所有文件夹,并合并文件夹下的所有txt文件,您可以使用以下示例代码:
# 获取当前日期
current_date=$(date "+%Y%m%d")
# 检查当前日期是否为周日(0表示周日)
if [ $(date -d "$current_date" "+%w") -eq 0 ]; then
# 计算上周六和本周五的日期
start_date=$(date -d "$current_date - 7 days" "+%Y%m%d")
end_date=$(date -d "$current_date - 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/to/folders/$current_date"
# 检查文件夹是否存在并且是目录
if [ -d "$folder" ]; then
# 合并文件夹下所有的txt文件
cat "$folder"/*.txt >> merged.txt
fi
# 增加一天的时间
current_timestamp=$(date -d "@$current_timestamp + 1 day" "+%s")
done
echo "合并完成!"
else
echo "当前日期不是周日,无需执行合并操作。"
fi
请将/path/to/folders/
替换为包含日期文件夹的实际路径。代码会检查当前日期是否为周日,如果是周日,则会遍历上周六到本周五的所有文件夹,并将文件夹下的所有txt文件合并到merged.txt
中。
请注意,如果merged.txt
文件已经存在,执行脚本时会将新的内容追加到现有文件的末尾。如果您需要每次都创建新的文件,请在执行脚本之前删除merged.txt
文件。
希望这个示例代码对您有所帮助!如果您有其他问题,请随时提问。