如何将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
它是有效命令,没有输出。
引用还可以防止?
引起问题(这是一个通配符)。