首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用csv执行Bash循环并在internet上下载文件

用csv执行Bash循环并在internet上下载文件
EN

Stack Overflow用户
提问于 2021-03-10 13:48:03
回答 2查看 259关注 0票数 1

因此,在我的论文中,我想从加拿大政府那里下载气候天气数据。他们向我提供了一个命令,允许我下载特定气象站的所有数据:

代码语言:javascript
运行
复制
for year in `seq 1998 2008`;do for month in `seq 1 1`;do wget --content-disposition "https://climate.weather.gc.ca/climate_data/bulk_data_e.html?format=csv&stationID=1706&Year=${year}&Month=${month}&Day=14&timeframe=2&submit= Download+Data" ;done;done

但是,我想为此创建一个for循环,以便自动下载所有所需气象站的数据。我已经使用所有必要的StationID创建了一个csv文件,名为: stations.csv

到目前为止,我已经:

代码语言:javascript
运行
复制
while read line \
do \
echo ... \
done < stations.csv

但是,当我复制粘贴代码并将1706 (这是一个stationID)更改为$line时,它无法工作。有人知道怎么解决吗?

EN

回答 2

Stack Overflow用户

发布于 2021-03-10 16:10:27

假设是wget,也许:

代码语言:javascript
运行
复制
wget -i stations.csv

代码语言:javascript
运行
复制
while read line; do
  echo ${line}
  wget ${line}
done < stations.csv
票数 1
EN

Stack Overflow用户

发布于 2021-03-12 08:30:21

对于那些面临同样问题的人来说。确保检查..txt文件设置。如果你在窗口,使用CRLF;mac-用户,使用LF。

最后代码:

代码语言:javascript
运行
复制
> tail +2 stations.txt | while IFS= read -r line || [ -n "$line" ]; do
> echo ${line}; for year in `seq 1998 2008`;do for month in `seq 1 1`;do
> wget --content-disposition
> "https://climate.weather.gc.ca/climate_data/bulk_data_e.html?format=csv&stationID=${line}&Year=${year}&Month=${month}&Day=14&timeframe=2&submit=
> Download+Data" ;done; done; sleep 2; done

文件名称:车站。txt

文档头:-> +2,从第二行开始循环。

睡眠设置:通过在循环之间等待来减少网站上的压力。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66566062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档