So kombinieren Sie wget und grep

So kombinieren Sie wget und grep

Ich habe die URL einer HTML-Seite und möchte sie greppen. Wie kann ich das tun wget someArgs | grep keyword?

Meine erste Idee war wget -q -O - url | grep keyword, aber die Ausgabe von wget umgeht grep und wird auf dem Terminal in ihrer ursprünglichen Form angezeigt.

Antwort1

Am einfachsten geht das curlmit der Option -sfürstill:

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

Antwort2

Ich behalte dies der Vollständigkeit halber bei.

Ihr Beispiel sollte eigentlich funktionieren. Die Syntax ist korrekt undhier ist ein Screencast, den ich gerade gemacht habe, um es zu demonstrieren, mit einem guten alten GNU wget1.13.4.

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

Gehen Sie also davon aus, dass Ihr Muster falsch ist, und grepgeben Sie einfach alles aus, was es hat.

Antwort3

Wenn Sie nach Grep- oder Pipe-Headern suchen, werden diese standardmäßig an stderr weitergeleitet, Sie müssen sie also umleiten. Beispiel:

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

Antwort4

Das wgetschreibt seine Ausgabe nach und stderr nicht nach stdout, also muss man es stderrnach umleiten stdout:

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

verwandte Informationen