Wget ve grep nasıl birleştirilir


11

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.


grep, (örneğin) satır başı ve satır besleme karakterleri ile ayrılmış satırları seçer; HTML yanıtında <br> veya <p> gibi biçimlendirme içeren satırlar yoktur, böylece tüm web sayfası grep için bir satır gibi görünebilir
RedGrittyBrick

1
@RedGrittyBrick OP'nin komutu benim için kusursuz çalışıyor.
slhck

Yanıtlar:


11

En kolay yolu kullanmaktır curlseçeneğiyle -siçin sessiz:

curl -s http://somepage.com | grep whatever

@slhck: Her iki komut da benim için aynısını yapıyor.
Dennis

@Dennis 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.
slhck

@slhck: Curl varsayılan olarak yönlendirmeleri izlemiyor. -LAnahtar ile yapar .
Dennis

@Dennis Silinen yorumları görmeden neden bahsettiğinizi bilmiyordum - ama evet, bu mantıklı. Temizlediğiniz için teşekkürler.
slhck

1
Soru wget ister. Kıvrılma. Bu, birden fazla yönlendirme ve -L seçeneğiyle çalışmaz.
Ligemer

11

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 .


URL'de bir yazım hatası da olabilir. İle -qhiçbir hata mesajı yok.
Dennis


3

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

2
Bunu yapmanın doğru yolu bu, teşekkürler!
Udayraj Deshmukh


0

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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.