Я хочу передати curl вихід з awk
./jspider.sh http://www.mypage.com | grep 'resource' | awk '{print $4}' | curl OUTPUT_FROM_AWK | grep myString
Як я можу цього досягти ?!
Я хочу передати curl вихід з awk
./jspider.sh http://www.mypage.com | grep 'resource' | awk '{print $4}' | curl OUTPUT_FROM_AWK | grep myString
Як я можу цього досягти ?!
Відповіді:
Використовуйте xargs
.
xargs utility [argument ...]
Утиліта 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>
У вашому конкретному випадку це буде виглядати приблизно так:
./jspider.sh http://www.mypage.com | grep 'resource' | awk '{print $4}' | xargs curl | grep myString
curl -s "http://superuser.com" | grep -E 'href="http://.*stackexchange\.com' | sed 's|^.*<a href="http://\([^"]*\)">.*$|http://\1|g' | grep -v "<" | xargs curl -s | grep "<title>"
добре працює для мене. (Так, я знаю, що код надзвичайно хакі).
grep -v
потім, я видаляю всі решта з дужками тегів HTML. Просто простий приклад, який показує підхід, працює в цілому.