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 curl
seçeneğiyle -s
için sessiz:
curl -s http://somepage.com | grep whatever
curl
ing 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.
-L
Anahtar 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 wget
1.13.4 ile.
wget -q some-url -O - | grep something
Öyleyse, deseninizin yanlış olduğunu ve grep
sadece sahip olduğu her şeyi çıktılayacağını varsayın .
-q
hiç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 stdout
yönlendirmek için, biri çok ihtiyaçları stderr
için stdout
:
wget -q -O - url 2&>1 | grep keyword