一連のファイルを一括ダウンロードし、プレフィックスを追加します。

一連のファイルを一括ダウンロードし、プレフィックスを追加します。

したがって、特定の順序でダウンロード可能なリンクのリストがありますが、ファイル名はめちゃくちゃです。

example.com/ddk.zip
example.com/453.zip
example.com/hth.zip

だから、ダウンロード時にリンクリストの順序に従って自動的にプレフィックスを付けたいと思います。それでは、次のようになります。

001_ddk.zip
002_453.zip
003_hth.zip

Bashでこれを達成する方法はありますか?

答え1

これはスクリプトです

#!/bin/bash

PATH=/bin:/sbin:/usr/bin:/usr/sbin

prefix=1

while read link; do
  filename="$(printf "%03d" $prefix)_${link##*/}"
  echo "wget $link -O $filename"
  prefix=$((prefix+1))
done < <(cat /tmp/list)

明らかにechowgetコマンドを削除して実際に実行しました。

結果:

$ bash script.sh
wget example.com/ddk.zip -O 001_ddk.zip
wget example.com/453.zip -O 002_453.zip
wget example.com/hth.zip -O 003_hth.zip
wget example.com/ddhth.zip -O 004_ddhth.zip
wget example.com/hggth.zip -O 005_hggth.zip
wget example.com/jhkhth.zip -O 006_jhkhth.zip

はい、リンクリストを編集し、前にhttp://またはhttps://を追加する必要があります。

関連情報