我有一个 temp.csv 文件,它有 4 列和很多行。column0 有一个链接,该链接是来自互联网的图像,例如“www.abc.com/one.jpg”等。我通常使用以下 wget 命令为任何单个链接下载任何链接:
wget http://www.sample.com/temp.jpg -O /home/tempfolder/
有什么方法可以使用或扩展 wget 命令来下载我的 csv 文件的 column0 下列出的所有链接并将其保存到文件夹中?
我有一个 temp.csv 文件,它有 4 列和很多行。column0 有一个链接,该链接是来自互联网的图像,例如“www.abc.com/one.jpg”等。我通常使用以下 wget 命令为任何单个链接下载任何链接:
wget http://www.sample.com/temp.jpg -O /home/tempfolder/
有什么方法可以使用或扩展 wget 命令来下载我的 csv 文件的 column0 下列出的所有链接并将其保存到文件夹中?
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
我试过了 - wget 无法保存文件。但是,这里有一个修复:
cut -f1 -d, filename | while read url; do wget ${url} -O /home/tempfolder/$(basename ${url}); done
我希望这有帮助。
只需确保在与 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
. 我希望这足够详细。