gpt4 book ai didi

linux - 循环遍历 bash 中的日期以下载 "2016/201601031400"格式的文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:44:01 24 4
gpt4 key购买 nike

我对 bash 和 Linux 还很陌生。所以这可能是一个愚蠢的问题。

我正在尝试制作一个 bash 脚本来从网站下载多个文件。这些文件位于格式为 http://example.com/xyz/abc/2016/201601031400.tar.gz

的 URL 中

请注意,文件名包含年、月、日和时间。数据遍历了从2007/01/01到2016/12/31的所有日期;时间始终保持不变:“1400”。

我想遍历日期范围内的每个日期并下载所有的 tar.gz 文件。

有人可以帮我处理循环部分并动态生成用于 wget 下载文件的 URL 吗?

最佳答案

如果您不介意花几秒钟来调用 date 几千次(与网络往返次数相比,这将是微不足道的),您可以将天数添加到开始时间。使用一个简单的 for 循环(注意您的范围内有 3653 天),并使用 date 适本地设置每个日期的格式:

#!/bin/bash

start='14:00 2007-01-01'

for i in {0..3652}
do
d=$(date -d "$start +$i days" '+http://example.com/xyz/abc/%Y/%Y%m%d%H%M.tar.gz')
echo "$d" # or wget, or whatever
done

上面,我们使用 date-d 参数将天数添加到初始日期,我们使用格式参数来插入日期/时间将值放入字符串中。

关于linux - 循环遍历 bash 中的日期以下载 "2016/201601031400"格式的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41114781/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com