1

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

Linuxコマンドラインで、wgetを使用してそれらすべてのダウンロードを自動化する方法はありますか? ファイル名を 1 行に 1 エントリのテキスト ファイルに入れ、そこから検索するようにコマンド ラインに指示することは簡単にできますが、それは URL 全体ではなく、変化するビットだけなので、コマンドは次のようになります。

wget url.com/files/(ファイルからのビット).doc sourcefile.txt

基本的に、ソースファイルのエントリを括弧内のビットに置き換えることができます。

また、ある段階では、ファイルの大きなチャンク (数百) が単純に連続して番号付けされているため、そのビットに for ループを使用できますか? もしそうなら、コマンドラインで構文的にこれを行うにはどうすればよいですか?

どうもありがとう。

4

3 に答える 3

3

ブレース展開を使用できます。

wget x.com/files/1_{a..z}.doc

必要に応じて組み合わせることができます。

wget x.com/files/{1..10}_{a..z}.doc
于 2013-07-19T19:38:43.057 に答える
0
while read fn
do
    wget "url.com/files/$fn.doc"
done < sourcefile.txt
于 2013-07-19T19:36:08.100 に答える
0

bash/引数ジェネレータを使用:

    $ echo wget http://example.com/files_{1,2}_{a..d}

wget http://example.com/files_1_a http://example.com/files_1_b http://example.com/files_1_c http://example.com/files_1_d http://example.com/files_2_a http:// example.com/files_2_b http://example.com/files_2_c http://example.com/files_2_d

于 2013-07-19T19:40:02.837 に答える