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 curlcom a opção -sde silêncio:
curl -s http://somepage.com | grep whatever
curling 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.
-Linterruptor.
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 wget1.13.4.
wget -q some-url -O - | grep something
Portanto, assuma que seu padrão está errado e grepapenas 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 wgetgrava sua saída em stderr não stdout, então é necessário redirecionar o stderrpara stdout:
wget -q -O - url 2&>1 | grep keyword