일련의 파일을 일괄 다운로드하고 접두사를 추가합니다.

일련의 파일을 일괄 다운로드하고 접두사를 추가합니다.

그래서 특정 순서로 다운로드 가능한 링크 목록이 있는데 파일 이름이 엉망입니다.

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://를 추가해야 합니다.

관련 정보