@slhck 為這個類似的問題提供了有用的答案。
提供此程式碼是為了從文字檔案讀取網址文件列表,然後運行循環來下載每個。
#!/usr/bin/env bash
while read line
do
wget -c --load-cookies cookies.txt $line -O ${line##*/}
done < filelist
由於我不熟悉 shell 腳本,我想知道您是否可以透過以下方式下載多個 xml 檔案:
- 創建一個簡單的逗號分隔文字文件文件列表
- 閱讀自:
文件列表
returnedfile.xml,url-01.php
returnedFileDifferent.xml,url-02.php
SpecificFileRename.xml,“url-03”
newFilename.xml,“url-04”
- 通讀每一行
- 將行拆分為 newfile、remoteFile
並運行:
wget -O newfile remoteFile >/dev/null 2>&1
可以把這個寫在shell腳本中嗎?你能舉個例子嗎?
答案1
要獲取您使用的逗號之前的文字${line/,*}
。
(這實際上是替換“,*”或從逗號開始的所有文本和空字串- 只保留逗號之前的字串部分)
要獲取逗號後面的文本,請使用${line/*,}
.
所以完整的命令是:
while read line
do
wget -O ${line/,*} ${line/*,} >/dev/null 2>&1
done < filelist
或者,在一行中:
while read line; do echo wget -O ${line/,*} ${line/*,} >/dev/null 2>&1; done < filelist
在 Windows 中(假設您已經安裝了 wget,從http://gnuwin32.sourceforge.net/packages/wget.htm,並正確設定你的路徑),它將是:
for /f "delims=, tokens=1*" %a in (filelist) do wget -O %a %b