Ho un URL html-page e voglio grep. Come posso farlo wget someArgs | grep keyword
?
La mia prima idea è stata wget -q -O - url | grep keyword
, ma l'output di wget ignora grep e si presenta sul terminale nella sua forma originale.
Ho un URL html-page e voglio grep. Come posso farlo wget someArgs | grep keyword
?
La mia prima idea è stata wget -q -O - url | grep keyword
, ma l'output di wget ignora grep e si presenta sul terminale nella sua forma originale.
Risposte:
Il modo più semplice è quello di utilizzare curl
con l'opzione -s
per il silenzio:
curl -s http://somepage.com | grep whatever
curl
ing http://superuser.com/questions/431581
. Per qualsiasi motivo l'ho provato con questo particolare URL e non ho ottenuto alcun risultato. Non so cosa mi manchi.
-L
interruttore.
Tenendolo presente per motivi di completezza.
Il tuo esempio dovrebbe effettivamente funzionare. La sintassi è corretta, ed ecco uno screencast che ho appena preso per dimostrarlo , con un buon vecchio GNU wget
1.13.4.
wget -q some-url -O - | grep something
Quindi supponi che il tuo modello sia sbagliato e grep
che restituisca tutto ciò che ha ottenuto.
-q
, non è presente alcun messaggio di errore.
Questo errore nella v1.12.1 era stato corretto in un'altra versione . Attualmente uso v1.15 e funziona come previsto.
Se stai cercando grep o pipe header, sono standard diretti a stderr, quindi devi reindirizzarli. Per esempio:
wget -O - http://example.com/page.php > /dev/null 2>&1 | grep HTTP
L' wget
scrive il suo output a stderr
non stdout
, quindi bisogna reindirizzare la stderr
a stdout
:
wget -q -O - url 2&>1 | grep keyword