Wget
使用 wget 整理文件名
我正在從包含 wget 文件名之外的附加資訊的 url 下載文件列表。這導致文件名如下:
pythonbook.pdf@y=11&x=123
我真正想要的只是 pythonbook.pdf 部分。我的文件列表基本上是一個 URL 列表,例如:
https://dl.domain.com/pythonbook.pdf@y=11&x=123
我怎樣才能沒有文件名中不必要的部分?
在這種情況下,可能最容易遍歷整個列表(因為
wget
似乎不支持動態創建輸出文件名):while read url; do t=${url##*/} # removes protocol and hostname pdf=${t%@*} # removes part from @ onwards wget -O "$pdf" "$url" done < LIST-OF-URLs
url
是從文件中的 URL 列表中讀取的 URL,如果名稱不唯一,您可以在文件名中添加一個數字,例如像這樣(假設所有文件都是 PDF):
i=0 while read url; do t=${url##*/} # removes protocol and hostname pdf=${t%.pdf@*} # removes part from .pdf@ onwards wget -O "$pdf-$i.pdf" "$url" ((i++)) done < LIST-OF-URLs
或(如果文件有不同的後綴)
i=0 while read url; do t=${pdf##*/} # removes protocol and hostname pdf=${t%@*} # removes part from @ onwards wget -O "$i-$pdf" "$url" ((i++)) done < LIST-OF-URLs