在文件的每一行上运行curl命令并下载文件

时间:2018-09-16 10:28:16

标签: bash

我有一个包含pdf文件列表的文件。

this is a test.pdf
this is a/another test.pdf
test number 5_ example.pdf
...

我知道这样做:     curl -O“ https://report2018/this是另一个test.pdf” 将下载文件。

因此,方案是在URL的开头应为“ https://report2018/”的情况下,使用bash脚本中的curl逐个下载文件中的所有pdf。

因此,完整的URL将为https://report2018/+PDF_NAME

任何想法或建议如何在bash脚本中实现?

1 个答案:

答案 0 :(得分:1)

实际上这是一个非常基本的脚本... 您可以将问题分为两部分:

  • bash的基本用法;
  • 如何循环文件。

像这样的东西就足够了:

#!/bin/bash
exec 3<file.list # Put the file in a file descriptor
while read -r line <&3; do # Read line by line the file descriptor
  curl -sk "https://report2018/${line}" > "${line}" # make curl and save in file
done
exec 3>&- # Close file descriptor

显然,您必须根据需要(例如用户代理和/或身份验证)更改卷发。

请注意,在卷曲之后使用> ${line}",您将以file.list读取的相同名称保存文件。

我希望这对您有所帮助,请下次再使用搜索引擎。