wgetを使用してテキストファイルからファイル名を取得する

wgetを使用してテキストファイルからファイル名を取得する

目的のファイルの一部をホストしているWebサイトを見つけましたが、ファイルが多すぎて個別にダウンロードできませんでした。ファイル名はかなり標準的で再現可能な形式です(例:1_a、1_b、1_cなど)。

Linuxコマンドラインを使用してwget自動的にダウンロードする方法はありますか? 1行に1つのエントリを含むテキストファイルにファイル名を簡単に配置し、コマンドラインにそこから表示するように指示できますが、完全なURLではなく変更された部分だけがあるため、コマンドは次のようにする必要があります。

wget url.com/files/(bit from file).doc sourcefile.txt

デフォルトでは、ソースファイルのエントリを角かっこ内のビットに置き換えることができます。

また、1つのステップでは、大きな塊(何百もの)のファイルに順番に番号が付けられるので、そのビットにforループを使用できますか?それでは、コマンドラインで構文的にこれをどのように実行しますか?

ベストアンサー1

forループを使用できます。

for x in a b c d e f g h ; do
    wget http://url.com/$x.doc
done

これはbashで次のように短縮できます。

for x in {a..h} ; do
    wget ...
done

ただし、forループがなくても次のショートカットを使用できます。

wget http://url.com/{a..h}.doc

名前が連続的でなくファイルから読み取る必要がある場合は、whileループを使用してください。

while read x ; do
    wget http://url.com/$x.doc
done < sourcefile.txt

おすすめ記事