我有一个文本文件,其中有两列:第一列是要保存的名称,第二列是资源的url地址。
10000899567110806314.jpg 'http://lifestyle.inquirer.net/files/2018/07/t0724cheekee-marcopolo_1-e1532358505274-620x298.jpg'
10001149035013559957.jpg 'https://www.politico.eu/wp-content/uploads/2018/07/GettyImages-1004567890.jpg'
10001268622353586394.jpg 'http://www.channelnewsasia.com/image/10549912/16x9/991/529/a7afd249388308118058689b0060a978/Zv/tour-de-france-5.jpg'
10001360495981714191.jpg 'https://media.breitbart.com/media/2018/07/Dan-Coats.jpg'
这个文件包含成千上万行代码,所以我想要一个快速的方式来下载并重命名这些图片。
我阅读了多篇关于SO的帖子,并提出了以下解决方案:
cat list.txt | xargs -n 1 -P 4 -d '\n' wget -O
使用xargs
并行下载。我想使用带有-O
选项的wget
来重命名下载的文件。当我运行单个wget
命令时,这个方法效果很好。例如:
wget -O 10000899567110806314.jpg 'http://lifestyle.inquirer.net/files/2018/07/t0724cheekee-marcopolo_1-e1532358505274-620x298.jpg'
但是,当我使用xargs命令并行下载时,出现以下错误:
Try `wget --help' for more options.
wget: missing URL
Usage: wget [OPTION]... [URL]...
如果我只生成一个有(单列)换行符分隔的url文件,并运行以下命令,则效果非常好。
cat list.txt | xargs -n 1 -P 4 -d '\n' wget
但是,我不想首先下载文件,然后再进行重命名操作。
xargs < list.txt -P 4 -L 1 wget -O
不就够了吗? - PesaThe