如何卷曲另一个命令的输出

2 bash curl pipe

我想通过 curl 输出 awk

./jspider.sh http://www.mypage.com | grep 'resource' | awk '{print $4}' | curl OUTPUT_FROM_AWK | grep myString
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?!

Dan*_*eck 5

使用xargs.

xargs utility [argument ...]
Run Code Online (Sandbox Code Playgroud)

xargs 实用程序从标准输入中读取空格、制表符、换行符和文件结尾分隔的字符串,并utility使用这些字符串作为参数执行。

当然,还有比这种缩短形式更多的参数和选项。


使用的一般示例curl

$ echo "http://www.google.com" | xargs curl
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.de/">here</A>.
</BODY></HTML>
Run Code Online (Sandbox Code Playgroud)

在您的特定情况下,它看起来类似于以下内容:

./jspider.sh http://www.mypage.com | grep 'resource' | awk '{print $4}' | xargs curl | grep myString
Run Code Online (Sandbox Code Playgroud)