2

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

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

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

4

3 回答 3

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

命令:

cut -f1 -d, filename

“剪切”字段 1 ( -f1) 中由逗号 () 分隔的行-d,从指定的filename.

然后我们将其通过管道传输到:

while read url

它将来自cut变量的每一行读取url

然后我们wget指定url.

编辑:要解决您的权限问题:

pushd /home/tempfolder ; cut -f1 -d, filename | while read url; do wget $url; done; popd
于 2013-05-24T18:31:43.340 回答
3

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

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

我希望这有帮助。

于 2013-05-24T18:45:33.853 回答
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 循环遍历所有这些链接,并将它们一一放入名为 的变量中linklink在每次迭代中,我们使用该变量执行 wget 。您可以在命令行上运行它,也可以创建一个文件,将此行添加到顶部:#!/bin/sh,然后使用./file_name. 我希望这足够详细。

于 2013-05-24T18:31:55.863 回答