使用 wget 从 CSV 列表中下载图像
Use wget to download images from a list in CSV
我有一个包含三列的 CSV:object-ID、image-url1、image-url2。我希望能够 运行 一个 bash 脚本,该脚本对 CSV 中的每一行执行以下操作:
- 使用 'object-ID' 作为文件夹名称创建一个新文件夹
- 将两张图片下载到该文件夹
- 对每一行重复
我有这段代码,但需要一些帮助!
IFS=$'\n';
for file in `cat <filename.csv>`; do
echo "Creating folder $object-ID";
mkdir $object-ID
echo "Downloading image 1";
wget $image-url1
echo "Downloading image 2";
wget $image-url2
done
试试这个:
while IFS=, read objid url1 url2;
do
echo "Creating folder $objid"
mkdir -p "$objid"
# Run in a subshell
(
cd "$objid"
echo "Downloading image 1"
wget "$url1"
echo "Downloading image 2"
wget "$url2";
)
done < myfile.csv
假设您的 CSV 使用逗号 (,
) 作为分隔符。这可以通过更改 while
循环中的 IFS=,
部分来调整。
此外,如果 $objid
中包含正斜杠 (/
),mkdir -p
会将其视为包含子目录的路径并创建所有子目录。如果这是不可取的,您可以在 mkdir
之前替换 $objid
中的 /
,如下所示:
objid="${objid//\//_}"
与read
:
while IFS=',' read id image_one image_two; do
[ ! -d "${id}" ] && mkdir "${id}"
for img in ${image_one} ${image_two}; do
printf "Downloading %s" "${img}"
wget -P "${id}" "${img}"
echo "---"
done
done < file.csv
对于每一行:如果目录不存在,则根据 id 值创建目录,并在创建的目录中检索图像(使用 wget
的 -P
选项)。
与awk
:
awk -F "," '{
print "mkdir","; echo wget -P",,"; echo wget -P",,
}' filename.csv | bash
我有一个包含三列的 CSV:object-ID、image-url1、image-url2。我希望能够 运行 一个 bash 脚本,该脚本对 CSV 中的每一行执行以下操作:
- 使用 'object-ID' 作为文件夹名称创建一个新文件夹
- 将两张图片下载到该文件夹
- 对每一行重复
我有这段代码,但需要一些帮助!
IFS=$'\n';
for file in `cat <filename.csv>`; do
echo "Creating folder $object-ID";
mkdir $object-ID
echo "Downloading image 1";
wget $image-url1
echo "Downloading image 2";
wget $image-url2
done
试试这个:
while IFS=, read objid url1 url2;
do
echo "Creating folder $objid"
mkdir -p "$objid"
# Run in a subshell
(
cd "$objid"
echo "Downloading image 1"
wget "$url1"
echo "Downloading image 2"
wget "$url2";
)
done < myfile.csv
假设您的 CSV 使用逗号 (,
) 作为分隔符。这可以通过更改 while
循环中的 IFS=,
部分来调整。
此外,如果 $objid
中包含正斜杠 (/
),mkdir -p
会将其视为包含子目录的路径并创建所有子目录。如果这是不可取的,您可以在 mkdir
之前替换 $objid
中的 /
,如下所示:
objid="${objid//\//_}"
与read
:
while IFS=',' read id image_one image_two; do
[ ! -d "${id}" ] && mkdir "${id}"
for img in ${image_one} ${image_two}; do
printf "Downloading %s" "${img}"
wget -P "${id}" "${img}"
echo "---"
done
done < file.csv
对于每一行:如果目录不存在,则根据 id 值创建目录,并在创建的目录中检索图像(使用 wget
的 -P
选项)。
与awk
:
awk -F "," '{
print "mkdir","; echo wget -P",,"; echo wget -P",,
}' filename.csv | bash