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 curl
mit der Option -s
fü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 wget
1.13.4.
wget -q some-url -O - | grep something
Gehen Sie also davon aus, dass Ihr Muster falsch ist, und grep
geben 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 wget
schreibt seine Ausgabe nach und stderr
nicht nach stdout
, also muss man es stderr
nach umleiten stdout
:
wget -q -O - url 2&>1 | grep keyword