CSV文件有以下格式的2列:
名称;链接由;;
分隔例如
Product_1;www.example.com/product_1.png,www.example.com/product_2.png;
我正在尝试制作一个while循环,以便它可以下载图像并相应地重命名,但无法弄清楚
//对不起,misexplained我自己,我的意思是说我想下载图片,如果可能的话,在第一列中带有_1,_2等名称
这是我到目前为止所做的事情
#!/usr/bin/env bash
fname="$1"
while IFS=";" read f1 f2
do
mkdir -p "$f1";
wget -P "$f1" "$f2"
done < "$fname"
它有效,但只适用于文件,有什么方法可以让我的生活更轻松吗?
答案 0 :(得分:1)
我相信这就是你想要的。
#!/usr/bin/env bash
fname="$1"
# Loop through each line
while IFS=";" read -r f1 f2 _; do
# Create directory
mkdir -p "$f1"
# Loop through comma separated links
IFS=, read -r -a items <<< "$f2"
for i in $items; do
# Auto sequencing file name
number=0; suffix="";
while test -e "$f1/$f1$suffix.png"; do
(( ++number ))
suffix=$( printf -- '-%02d' "$number" )
done
outname="$f1/$f1$suffix.png"
# Download file
wget -P "$f1" -O "$outname" "$i"
done
done < "$fname"