从命令行下载.zip文件

zku*_*rtz 3 zip curl download

我有点盲目地尝试了很多变化,curlwget尝试下载一些.zip文件.我尝试的第一件事是:

curl --klo ".\bhcdata#1.zip" "https://www.chicagofed.org/applications/bhc_data/bhcdata_create_output.cfm?DYR=2011&DQTR=[1-4]"
Run Code Online (Sandbox Code Playgroud)

上面的命令实际上是由芝加哥联邦储备银行提供的文档中提供,但它在我的Ubuntu机器上抛出了错误信息:curl: option --klo: is unknown.

有一种直截了当的方法吗?

为了弄清楚我正在尝试做什么: 芝加哥联邦储备银行网站允许您输入年份和季度,然后单击"下载数据文件",它会为您提供相应数据的.zip文件.我想为所有季度做这个,所以我需要一种方法来编写每个季度的命令,以便我可以循环它们.将[1-4]在本例以上命令会抓住所有四个季度的一年之内,但我会罚款只是在时间去四分之一,我尝试了更换1为好.我尝试过没有各种选项组合,但没有任何工作.

Flo*_*ris 8

在我的机器上,以下命令工作正常:

curl -o ./bhcdata1.zip "https://www.chicagofed.org/applications/bhc_data/bhcdata_create_output.cfm?DYR=2011&DQTR=1"
Run Code Online (Sandbox Code Playgroud)

注意:

  1. 单个破折号而不是双破折号
  2. 我只指定了输出文件 - 没有引号和正斜杠
  3. 我只将URL简化为特定的季度

我完成时找到了一个bhcdata1.zip在我的目录中命名的文件:

-rw-r--r--   1 floris  floris    1545868 Feb 13 21:05 bhcdata1.zip
Run Code Online (Sandbox Code Playgroud)

你可能会发现你也需要-k旗帜......虽然我不需要在我的机器上.那就是

curl -ko ./bhcdata1.zip "https://www.chicagofed.org/applications/bhc_data/bhcdata_create_output.cfm?DYR=2011&DQTR=1"
Run Code Online (Sandbox Code Playgroud)

工作得很好......

获得所有四个季度的奖金,您可以简单地将以下行放在脚本中.保存为downloadAll.用chmod 755 downloadAll,将文件更改为"executable" ,然后键入./downloadAll.请享用…

#!/bin/bash
for i in {1..4}
do
  curl -ko ./bhcdata$i.zip "https://www.chicagofed.org/applications/bhc_data/bhcdata_create_output.cfm?DYR=2011&DQTR=$i"
done
Run Code Online (Sandbox Code Playgroud)

结果:

-rw-r--r--   1 floris  floris    1545868 Feb 13 21:11 bhcdata1.zip
-rw-r--r--   1 floris  floris    2413876 Feb 13 21:11 bhcdata2.zip
-rw-r--r--   1 floris  floris    1573810 Feb 13 21:11 bhcdata3.zip
-rw-r--r--   1 floris  floris    2500525 Feb 13 21:12 bhcdata4.zip
Run Code Online (Sandbox Code Playgroud)

如果你想要多年,做(某些变种)

#!/bin/bash
for yr in {2010..2012}
do
  for qtr in {1..4}
  do
    curl -ko ./bhcdata$yr_$qtr.zip "https://www.chicagofed.org/applications/bhc_data/bhcdata_create_output.cfm?DYR=$yr&DQTR=$qtr"
  done
done
Run Code Online (Sandbox Code Playgroud)