我找到了一个网站,其中包含一些我想要的文件,太多了,无法单独下载它们。文件名采用相当标准和可复制的形式,即 1_a、1_b、1_c 等
有没有办法使用 Linux 命令行wget
来自动下载它们?我可以轻松地将文件名放在每行 1 个条目的文本文件中,并指示命令行从那里查找,但它不会是整个 URL,只是更改的位,因此命令需要看起来像:
wget url.com/files/(bit from file).doc sourcefile.txt
Run Code Online (Sandbox Code Playgroud)
并且基本上能够将源文件中的条目替换为括号中的位。
此外,在一个阶段,一大块(几百个)文件只是按顺序编号,所以我可以使用 for 循环吗?如果是这样,我将如何在命令行中按语法执行此操作?
您可以使用 for 循环:
for x in a b c d e f g h ; do
wget http://url.com/$x.doc
done
Run Code Online (Sandbox Code Playgroud)
可以在 bash 中缩短为
for x in {a..h} ; do
wget ...
done
Run Code Online (Sandbox Code Playgroud)
但是即使没有 for 循环,你也可以使用这个速记:
wget http://url.com/{a..h}.doc
Run Code Online (Sandbox Code Playgroud)
如果名称不是连续的并且您需要从文件中读取它们,请使用 while 循环:
while read x ; do
wget http://url.com/$x.doc
done < sourcefile.txt
Run Code Online (Sandbox Code Playgroud)