【问题标题】:Download file using regex in wget在 wget 中使用正则表达式下载文件
【发布时间】:2015-09-26 04:47:10
【问题描述】:

我在远程位置有文件,名称如下:

ranjans-vra_test1-standalone-6ff194f94-0.vraCafe.0-nimbus-vra-deploy-result.json

唯一词可以是 test1 vraCafenimbus-vra-deploy-result.json 。我正在尝试使用wget 命令下载文件:

wget -r http://URL/ranjans/testbeds/vra/testbeds/.*test1.*vraCafe.*nimbus-vra-deploy-result.json -O /usr/nimbus/testbeds/vra/vra.json

我收到404 错误。我应该在我的命令中进行哪些修改?

【问题讨论】:

  • curl 也对我有用!有什么想法吗?

标签: curl download wget


【解决方案1】:

仅使用 wget 命令是无法实现的,因为您无法使用 wget *.* 下载整个互联网。

如果您知道文件的名称,可以将它们粘贴到 urls.txt 文件中:

http://URL/foo/bar.json
http://URL/foo/baz.json

然后拨打wget -i urls.txt

【讨论】:

  • 我的问题我没有确切的文件名。我只有模式。像 curl 这样的任何其他脚本也适合我。
【解决方案2】:

以下命令对我有用:

wget -r --no-parent -I /ranjans/testbeds/vra/testbeds -X /ranjans/testbeds/vra/testbeds/nimbusUtilStats -A "*test1*vraCafe.0-nimbus-vra-deploy-result.json" http://URL/ranjans/testbeds/vra/testbeds/ -P ${WORKSPACE}/nimbus

我面临的唯一问题是:它正在下载完整的 url 和文件名。需要通过wget找到解决方案,或者可以通过编写一些shell来解决。

【讨论】:

    【解决方案3】:

    给你:

    使用 wGET 的解决方案:

    for i in $(wget -qO- http://URL/ranjans/testbeds/vra/testbeds/ | grep "*test1.*vraCafe.*nimbus-vra-deploy-result.json<" | awk '{split($0,file,"\""); print file[2]}'); do curl -O http://URL/ranjans/testbeds/vra/testbeds/$i; done
    

    使用 cURL 的解决方案:

    for i in $(curl http://URL/ranjans/testbeds/vra/testbeds/ | grep "*test1.*vraCafe.*nimbus-vra-deploy-result.json<" | awk '{split($0,file,"\""); print file[2]}'); do curl -O http://URL/ranjans/testbeds/vra/testbeds/$i; done
    

    因此,所有满足正则表达式*test1.*vraCafe.*nimbus-vra-deploy-result.json 的文件都会被下载。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-17
      • 2019-04-20
      相关资源
      最近更新 更多