異なる URL から複数の XML ファイルをダウンロードする方法

異なる URL から複数の XML ファイルをダウンロードする方法

@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

関連情報