管道卷曲到 grep

管道卷曲到 grep

如何将curl下载的页面发送到管道中,而不是仅仅将其打印在屏幕上

这有效:

# curl -Ss -o txt https://pgl.yoyo.org/adservers/serverlist.php?showintro=0;hostformat=hosts
# grep 127 txt

但这并不:

# curl -Ss -o txt https://pgl.yoyo.org/adservers/serverlist.php?showintro=0;hostformat=hosts | grep 127

可以在不使用中间文件的情况下使其工作吗?

答案1

告诉curl不要写入文件 ( -o txt),并引用 URL:

curl -Ss 'https://pgl.yoyo.org/adservers/serverlist.php?showintro=0;hostformat=hosts' | grep 127

由于 URL 中的分号,您的尝试不起作用:如果未引用分号,shell 会将其解释为结束命令。 shell因此运行

curl -Ss -o txt https://pgl.yoyo.org/adservers/serverlist.php?showintro=0

其次是

hostformat=hosts | grep 127

后者工作时没有明显错误,因为hostformat=hosts它是有效命令,没有输出。

引用还可以防止?引起问题(这是一个通配符)。

相关内容