在 bash 脚本中,我正在动态下载一个文件,因此我使用它wget --content-disposition
来确保文件名是正确的,但是我该如何检索保存的文件的名称wget
呢?
答案1
以下是使用wget
和实现此目的的一种方法cut
:
wget -nv https://upload.wikimedia.org/wikipedia/commons/5/54/Golden_Gate_Bridge_0002.jpg 2>&1 |cut -d\" -f2
解释一下,wget -nv ...
打印出如下内容:
2016-11-15 14:58:44 URL:https://upload.wikimedia.org/wikipedia/commons/5/54/Golden_Gate_Bridge_0002.jpg [1072554/1072554] -> "Golden_Gate_Bridge_0002.jpg.22" [1]
wget 上的标志-nv
只是让它“不冗长”(参见man wget
:)
由于将wget
其输出写入,因此STDERR
我们必须将其重定向到,STDOUT
然后才能提取文本;为此,我们2>&
在末尾添加wget
。然后,为了在末尾只获取文件名,我使用了cut
。是-d\"
指定我们用作"
分隔符。-f2
指定我们想要第二个“列”,即第一和第二个分隔符之间的数据"
。
第一列:2016-11-15 14:58:48 URL:https://upload.wikimedia.org/wikipedia/commons/5/54/Golden_Gate_Bridge_0002.jpg [1072554/1072554] -> "
Golden_Gate_Bridge_0002.jpg.23`” [1]