从链接中下载图像作为linux / unix中csv文件中的列值

时间:2013-05-24 18:29:20

标签: linux shell unix ubuntu command-line

我有一个temp.csv文件,有4列和大量行。 column0有一个链接,是来自互联网的图像,如'www.abc.com/one.jpg'等。我通常使用以下wget命令为任何单个链接下载任何链接:

wget http://www.sample.com/temp.jpg  -O /home/tempfolder/

有什么方法可以使用或扩展wget命令来下载我的csv文件的column0下列出的所有链接并将其保存到文件夹中?

3 个答案:

答案 0 :(得分:3)

cut -f1 -d, filename | while read url; do wget $url -O /home/tempfolder; done

命令:

cut -f1 -d, filename

“剪切”来自指定-f1的以逗号(-d,)分隔的行的字段1(filename)。

然后我们将其传达给:

while read url

cut中的每一行读入变量url

然后我们wget指定的url

修改:修复权限问题:

pushd /home/tempfolder ; cut -f1 -d, filename | while read url; do wget $url; done; popd

答案 1 :(得分:3)

我试过了 - wget无法保存文件。但是,这是一个修复:

cut -f1 -d, filename | while read url; do wget ${url} -O /home/tempfolder/$(basename ${url}); done

我希望这会有所帮助。

答案 2 :(得分:2)

只需确保在与CSV_FILE相同的目录中运行此脚本,或提供此文件的完整路径。

for link in `cat CSV_FILE | cut -d, -f1` 
do
     wget $link -O /home/tempfolder/
done
编辑:你让我详细说明。这是一个for循环,迭代该文件中的每个链接。 cat CSV | cut -d, -f1仅提取包含链接的列。 for循环遍历所有这些链接,并逐个将它们放在名为link的变量中。在每次迭代时,我们使用link变量执行wget。您可以在命令行上运行此文件,也可以创建文件,在顶部添加此行:#!/bin/sh,然后使用./file_name运行它。我希望这足够详细。