Curl

管道捲曲到 grep

  • July 1, 2021

您如何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

這可以在不使用中間文件的情況下工作嗎?

告訴curl不要寫入文件 ( -o txt),並引用 URL:

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

由於 URL 中的分號,您的嘗試不起作用:如果它沒有被引用,它會被 shell 解釋為結束一個命令。外殼因此執行

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

其次是

hostformat=hosts | grep 127

後者在沒有明顯錯誤的情況下工作,因為hostformat=hosts它是一個有效的命令,沒有輸出。

引用還可以防止?引起問題(它是萬用字元)。

引用自:https://unix.stackexchange.com/questions/656551