Bir html sayfa url'im var ve bunu grep etmek istiyorum. Bunu nasıl yapabilirim wget someArgs | grep keyword?
İlk fikrimdi wget -q -O - url | grep keyword, ama wget'in çıktısı grep'i atlar ve terminalde orijinal haliyle ortaya çıkar.
Bir html sayfa url'im var ve bunu grep etmek istiyorum. Bunu nasıl yapabilirim wget someArgs | grep keyword?
İlk fikrimdi wget -q -O - url | grep keyword, ama wget'in çıktısı grep'i atlar ve terminalde orijinal haliyle ortaya çıkar.
Yanıtlar:
En kolay yolu kullanmaktır curlseçeneğiyle -siçin sessiz:
curl -s http://somepage.com | grep whatever
curling ing http://superuser.com/questions/431581. Hangi nedenle olursa olsun bu URL ile test ettim ve hiçbir çıktı almadım. Kaçırdığım şeyi bilmiyorum.
-LAnahtar ile yapar .
Bütünlük uğruna bunu tutmak.
Örneğiniz aslında işe yarayacaktır. Sözdizimi doğrudur ve işte bunu göstermek için aldığım bir screencast , iyi bir eski GNU wget1.13.4 ile.
wget -q some-url -O - | grep something
Öyleyse, deseninizin yanlış olduğunu ve grepsadece sahip olduğu her şeyi çıktılayacağını varsayın .
-qhiçbir hata mesajı yok.
Bu hata v1.12.1'de başka bir sürümde düzeltildi . Şu anda v1.15 kullanıyorum ve beklendiği gibi çalışıyor.
Grep veya boru başlıklarını arıyorsanız, bunlar standart olarak stderr'e yönlendirilir, bu yüzden onları yönlendirmeniz gerekir. Örneğin:
wget -O - http://example.com/page.php > /dev/null 2>&1 | grep HTTP
wgetİçin çıktısını yazdığı stderr değil stdoutyönlendirmek için, biri çok ihtiyaçları stderriçin stdout:
wget -q -O - url 2&>1 | grep keyword