複数の類似URLをダウンロードするには、中かっこを使用してください。

複数の類似URLをダウンロードするには、中かっこを使用してください。
#!/bin/sh
orig=$1

var=${orig%.jpg}
var=`echo "$var" | grep -o "[0-9][0-9]$"`

cutten=${orig%[0-9][0-9].jpg}

sequence='{1,'
for i in `seq 2 $(( $var - 1 ))`; do
sequence=$sequence$i","
done
output=$cutten$sequence$var"}.jpg"

echo "$output"
#wget "$output"

次のimgリンクを使用して* 1.jpgファイルを* 20.jpgとしてhttp://foo.bar/some-image-20.jpg返します。 http://foo.bar/some-image-{1,2,3,4,5,…,18,19,20}.jpg

エコーからwgetとして実行すると、期待どおりに動作します(出力は上記と同じです)。

-- (Date/Time) -- http://foo.bar/some-image-%7B1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20%7D.jpg
(Proceeds to resolve this whole one link, and fails)

ほぼ「{」を「%7B」に置き換え、「}」を「%7D」に置き換えます。どんなアイデアがありますか?

ベストアンサー1

ワイルドカードのダウンロードをサポートするWebサーバーはありません。各URLを個別にインポートする必要があります。

次のように元のスクリプトをできるだけ維持します。

#!/bin/sh
orig=$1

var=${orig%.jpg}
var=$(echo "$var" | grep -o "[0-9][0-9]$")

cutten=${orig%[0-9][0-9].jpg}

for i in $(seq 1 $(($var - 1))) ; do
      echo $cutten$i.jpg
done | wget -i -

これは、ファイル(この場合はstdin)から取得するURLのリストを読み取るwgetのオプションを利用するため、-iファイルのリストをwgetにパイプすることができます。

(実行する前にダウンロードする内容を表示するには、wget -i -に置き換えてくださいcat。)

おすすめ記事