在wget中使用regex下载文件

时间:2015-09-26 04:47:11

标签: curl download wget

我的文件位于远程位置,名称如下:

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错误。我应该在命令中做些什么修改?

3 个答案:

答案 0 :(得分:0)

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

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

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

然后拨打wget -i urls.txt

答案 1 :(得分:0)

以下命令对我有用:

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

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

答案 2 :(得分:0)

你走了:

使用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的所有文件。