@slhck は、この同様の質問に対して役立つ回答を提供しました。
wget で複数のファイルをダウンロードし、パラメータを処理する
このコードはテキストファイルからURLを読み取るために提供されましたファイルリスト次に、ループを実行してそれぞれをダウンロードします。
#!/usr/bin/env bash
while read line
do
wget -c --load-cookies cookies.txt $line -O ${line##*/}
done < filelist
私はシェル スクリプトに詳しくないので、次の方法で複数の XML ファイルをダウンロードできるかどうか知りたいです。
- 単純なカンマ区切りのテキストファイルを作成するファイルリスト
- 読む:
ファイルリスト
renamedfile.xml、url-01.php
renamedFileDifferent.xml、url-02.php
specificFileRename.xml、「url-03」
newFilename.xml、「url-04」
- 各行を読み通す
- 行をnewfile、remoteFileに分割します
そして実行します:
wget -O newfile remoteFile >/dev/null 2>&1
これをシェル スクリプトで記述することは可能ですか? 例を挙げていただけますか?
答え1
カンマの前のテキストを取得するには、 を使用します${line/,*}
。
(これは実際には「,*」またはカンマ以降のすべてのテキストと空の文字列- 文字列のコンマの前の部分のみを残す)
カンマの後のテキストを取得するには、 を使用します${line/*,}
。
したがって、完全なコマンドは次のようになります。
while read line
do
wget -O ${line/,*} ${line/*,} >/dev/null 2>&1
done < filelist
または、1行で次のように記述します。
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