Saya ingin melewatkan hasil keluaran dari awk
./jspider.sh http://www.mypage.com | grep 'resource' | awk '{print $4}' | curl OUTPUT_FROM_AWK | grep myString
Bagaimana saya bisa mencapai ini ?!
Saya ingin melewatkan hasil keluaran dari awk
./jspider.sh http://www.mypage.com | grep 'resource' | awk '{print $4}' | curl OUTPUT_FROM_AWK | grep myString
Bagaimana saya bisa mencapai ini ?!
Jawaban:
Menggunakan xargs
.
xargs utility [argument ...]
Utilitas xargs membaca spasi, tab, baris baru dan string akhir file dibatasi dari input standar dan dijalankan
utility
dengan string sebagai argumen.
Ada lebih banyak parameter dan opsi daripada dalam bentuk singkat ini, tentu saja.
Contoh umum menggunakan 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>
Dalam kasus spesifik Anda, akan terlihat mirip dengan yang berikut:
./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>"
bekerja dengan baik untuk saya. (Ya saya tahu kode ini sangat hacky).
grep -v
Saya kemudian menghapus semua baris yang tersisa dengan tanda kurung tag HTML. Hanya sebuah contoh sederhana yang menunjukkan bahwa pendekatan ini bekerja secara umum.