You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量生成日期递增的shell命令,创建指定范围的hadoop目录

实现方案

你可以通过shell自带的date命令的日期计算能力实现批量生成,有两种常用实现思路:

方案1:生成你需要的逐行静态脚本

执行下面的代码即可直接生成符合要求的目标脚本:

#!/bin/bash
# 写入脚本头
echo '#!/bin/bash' > batch_mkdir.sh
# 配置起止日期
start="2020-11-25"
end="2021-06-30"

curr="$start"
while [ "$curr" != "$(date -d "$end +1 day" +%Y-%m-%d)" ]; do
    echo "hadoop fs -mkdir -p /user/hadoop-mining/SEARCH/$curr/ | true" >> batch_mkdir.sh
    curr=$(date -d "$curr +1 day" +%Y-%m-%d)
done

生成的batch_mkdir.sh就是你要的效果,所有日期按顺序逐行排列,你可以先检查内容是否正确再执行。

方案2:直接循环执行,不用生成静态脚本

如果不需要保留逐行的静态脚本,也可以直接用循环执行mkdir命令,效果完全一致:

#!/bin/bash
start="2020-11-25"
end="2021-06-30"

curr="$start"
while [ "$curr" != "$(date -d "$end +1 day" +%Y-%m-%d)" ]; do
    hadoop fs -mkdir -p /user/hadoop-mining/SEARCH/$curr/ | true
    curr=$(date -d "$curr +1 day" +%Y-%m-%d)
done

注意事项

  • 以上写法适用于Linux系统(GNU Date),如果是macOS系统,需要把日期递增的代码替换为:curr=$(date -v+1d -j -f "%Y-%m-%d" "$curr" +%Y-%m-%d)
  • 也可以用Python、AWK等其他语言实现日期遍历逻辑,核心思路都是从起始日期按天遍历到结束日期,拼接生成对应命令即可。

内容的提问来源于stack exchange,提问作者Bowen Peng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 13:57:02