2015-09-26 259 views
1

我在远程位置有文件,名字看起来像:下载文件使用正则表达式中的wget

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

独特的话可以test1vraCafenimbus-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错误。我应该怎样修改我的命令?

+0

curl也适用于我!任何想法呢? –

回答

0

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

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

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

然后调用wget -i urls.txt

+0

我的问题我没有确切的文件名。我只有模式。任何其他脚本像卷曲对我来说也很好。 –

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来解决。

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 

解决方案与卷曲:

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所有文件将被下载。