2017-07-19 93 views
0

当我如下wget的文件,文件与文件名下载为sample.txt的?ST = 2017-07-19T06%3A00%3A00Z”如何单独保存的文件名的文件在下载使用wget

wget "https://sample.blob.core.windows.net/test/sample.txt?st=2017-07-19T06%3A00%3A00Z" 

使用wget命令下载时,我不想使用如下,因为它不适合我的情况。

wget -O $filename -q "https://sample.blob.core.windows.net/test/sample.txt?st=2017-07-19T06%3A00%3A00Z" 

但我要保存的文件名作为sample.txt的,如何实现这一目标?

+0

该文件末尾的内容称为_query_,[超级用户上的此答案](https://superuser.com/a/327254)可能会有所帮助。 –

+0

@anubhava它不适合我,因为我下载的文件数量更多。我不想提供每个文件名作为静态。引用我的问题。 – karan

+1

您可以提供要下载的URL,并且可以很容易地从该URL导出文件名。 – anubhava

回答

2

如果我的理解是正确的,下面的脚本应该工作。

##set your blob url 
url="https://sample.blob.core.windows.net/test/sample.txt?st=2017-07-19T06%3A00%3A00Z" 
filename="${url%%[?]*}"; filename="${filename##*/}" 

wget -O $filename -q $url 

注意:如果使用此脚本,则文件名不能包含?

+0

这些外部进程不是必需的。你可以使用shell:'filename =“$ {url %% [?] *}”; filename =“$ {filename ## * /}”' – John1024

+1

非常感谢,它的工作原理。我会更新我的答案。 –

+0

@ Walter-MSFT这是什么=> file = $(basename“$ url”); filename = $(echo $ file | cut -f1 -d“?”)。这也适用。哪个更好? – karan

相关问题