使用wget从标准输入读取输入

5

从wget手册中得知

§2.4 日志和输入文件选项

‘-i file’
‘--input-file=file’
     从本地或外部文件中读取urls。如果将‘-’指定为文件,则urls将从标准输入读取。(使用‘./-’从字面上读取名为‘-’的文件。)
如果使用此功能,则命令行上不需要存在URL。如果命令行和输入文件中都有URL,则命令行上的URL将首先被检索。如果没有指定‘--force-html’,则文件应包含一系列URL,每行一个。

我尝试过执行这些操作

wget -i - www.google.com

它下载了一个文件 index.html,但是之后就卡住了。即使我按了几次“Enter”键,它仍然卡住了。为什么呢?

1个回答

7

因为您没有关闭'file',所以wget会继续等待您在stdin中输入更多内容。要终止,请按ctrl + d [EOF terminator]


按下ctrl+d会给你一个No URLs found in -. FINISHED --2012-11-20 23:15:43-- Downloaded: 1 files, 12K in 0.001s (14.9 MB/s)的提示信息。 - Anshul
2
这对于像 grep google urlList.txt | wget -i - 这样的事情非常有用(即下载文件中包含“google”的每个页面)。如果您只想在命令行上传递URL,则可以执行 wget url1 url2 - Inductiveload

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接