it-swarm-ja.com

wgetとgrepを組み合わせる方法

HTMLページのURLがあり、それをgrepしたい。どうすればwget someArgs | grep keyword

私の最初のアイデアはwget -q -O - url | grep keyword、ただしwgetの出力はgrepをバイパスし、元の形式で端末に表示されます。

11
Jofsey

最も簡単な方法は、curlをオプション-sとともにsilent:に使用することです。

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

完全を期すためにこれを維持します。

あなたの例は実際に動くはずです。構文は正しく、 これは私がデモを行ったばかりのスクリーンキャストです 、古き良きGNU wget 1.13.4。

wget -q some-url -O - | grep something

したがって、パターンが間違っていると仮定すると、grepは取得したすべてを出力します。

11
slhck

Grepまたはパイプヘッダーを探している場合、それらは標準でstderrに送信されるため、リダイレクトする必要があります。例えば:

wget -O - http://example.com/page.php > /dev/null 2>&1 | grep HTTP
3
ErichBSchulz

このバグ はv1.12.1で修正されました 別のバージョン で修正されました。現在v1.15を使用しており、期待どおりに動作します。

3
Leben Gleben

wgetは出力をstderrではなくstdoutに書き込むため、stderrstdoutにリダイレクトする必要があります。

wget -q -O - url 2&>1 | grep keyword
0
vstepaniuk