Eu tenho um URL de página html e quero cumprimentá-lo. Como posso fazer isso wget someArgs | grep keyword
?
Minha primeira idéia foi wget -q -O - url | grep keyword
, mas a saída do wget ignora o grep e surge no terminal em sua forma original.
Eu tenho um URL de página html e quero cumprimentá-lo. Como posso fazer isso wget someArgs | grep keyword
?
Minha primeira idéia foi wget -q -O - url | grep keyword
, mas a saída do wget ignora o grep e surge no terminal em sua forma original.
Respostas:
A maneira mais fácil é usar curl
com a opção -s
de silêncio:
curl -s http://somepage.com | grep whatever
curl
ing http://superuser.com/questions/431581
. Por qualquer motivo, testei-o com esse URL em particular e não obtive saída. Não sei o que estou perdendo.
-L
interruptor.
Manter isso por uma questão de integridade.
Seu exemplo deve realmente funcionar. A sintaxe está correta, e aqui está um screencast que acabei de demonstrar , com um bom e velho GNU wget
1.13.4.
wget -q some-url -O - | grep something
Portanto, assuma que seu padrão está errado e grep
apenas produzirá tudo o que tem.
-q
, não há mensagem de erro.
Este bug foi corrigido na v1.12.1 em outra versão . Atualmente eu uso a v1.15 e funciona conforme o esperado.
Se você estiver procurando grep ou encabeçar cabeçalhos, eles são direcionados padrão ao stderr, então você precisa redirecioná-los. Por exemplo:
wget -O - http://example.com/page.php > /dev/null 2>&1 | grep HTTP
Ele wget
grava sua saída em stderr
não stdout
, então é necessário redirecionar o stderr
para stdout
:
wget -q -O - url 2&>1 | grep keyword