Como posso enrolar a saída de outro comando

1

Eu quero passar a saída do awk

./jspider.sh http://www.mypage.com | grep 'resource' | awk '{print $4}' | curl OUTPUT_FROM_AWK | grep myString

Como posso conseguir isso?!

    
por nottinhill 02.12.2011 / 17:59

2 respostas

3

Use xargs .

xargs utility [argument ...]

The xargs utility reads space, tab, newline and end-of-file delimited strings from the standard input and executes utility with the strings as arguments.

Existem mais parâmetros e opções do que nesta forma abreviada, é claro.

Um exemplo geral usando 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>

No seu caso específico, seria semelhante ao seguinte:

./jspider.sh http://www.mypage.com | grep 'resource' | awk '{print $4}' | xargs curl | grep myString
    
por 02.12.2011 / 18:05
0

Tente isso, não foi testado, mas deve funcionar.

for a in $(./jspider.sh http://www.mypage.com | grep 'resource' | awk '{print $4}'); do curl $a | grep myString; done
    
por 02.12.2011 / 19:26

Tags