批量下载一系列文件并为其添加前缀

批量下载一系列文件并为其添加前缀

所以我有一个具有特定顺序的可下载链接列表,但文件名很混乱

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://

相关内容