我在另一个域上有文件。对它们使用命令(例如 grep)的最佳方法是什么?
wget http://path/to/file.txt | grep search
然而这不起作用。我想我可以使用,curl
但是有更有效的方法吗?
答案1
为了使管道正常工作,第一个命令需要写入标准输出。wget
通常不会这样做,但有一种方法可以请求它。来自 wget(1) 手册页:
-O file
--output-document=file
文档不会写入相应的文件,但所有文档将连接在一起并写入文件。如果 - 用作文件,文档将打印到标准输出
所以这样做
wget -O - http://what/ever | grep something
您可能会发现wget
在此上下文中的进度报告输出非常冗长,在这种情况下添加选项-q
以使其安静下来。
wget -q -O - http://what/ever | grep something
那么除了匹配的行之外,您将什么也得不到输出。
答案2
curl
除了 之外,您还可以使用来执行此操作wget
。
$ curl -s <url> | grep <pattern>
例子
$ curl -s http://textfiles.com/100/914bbs.txt | grep Colorama
965-7600 /Colorama / CoCo / 300/1200 /General BBS
开关细节
-s, --silent
Silent or quiet mode. Don't show progress meter or error
messages. Makes Curl mute. It will still output the data you ask
for, potentially even to the terminal/stdout unless you redirect it.