У меня есть URL-адрес HTML-страницы, и я хочу grep его. Как я могу это сделать wget someArgs | grep keyword?
Моя первая идея была wget -q -O - url | grep keyword, но вывод wget обходят grep и возникают на терминале в его первоначальном виде.
У меня есть URL-адрес HTML-страницы, и я хочу grep его. Как я могу это сделать wget someArgs | grep keyword?
Моя первая идея была wget -q -O - url | grep keyword, но вывод wget обходят grep и возникают на терминале в его первоначальном виде.
Ответы:
Самый простой способ - использовать curlопцию -sдля молчания:
curl -s http://somepage.com | grep whatever
curlING http://superuser.com/questions/431581. По какой-то причине я проверил его с этим конкретным URL и не получил вывод. Не знаю, что я скучаю.
-Lвыключателем.
Хранить это вокруг ради полноты.
Ваш пример должен действительно работать. Синтаксис правильный, и вот скриншот, который я только что продемонстрировал , со старым добрым GNU wget1.13.4.
wget -q some-url -O - | grep something
Итак, предположим, что ваш шаблон неверен и grepпросто выведет все, что получил.
-q, нет сообщения об ошибке.
Эта ошибка была исправлена в v1.12.1 в другой версии . В настоящее время я использую v1.15, и он работает как положено.
Если вы ищете заголовки grep или pipe, они стандартно направлены на stderr, поэтому вам нужно перенаправить их. Например:
wget -O - http://example.com/page.php > /dev/null 2>&1 | grep HTTP
wgetЗаписывает свой вывод stderr не stdout, поэтому необходимо перенаправить stderrна stdout:
wget -q -O - url 2&>1 | grep keyword