У меня есть 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
curl
ING http://superuser.com/questions/431581
. По какой-то причине я проверил его с этим конкретным URL и не получил вывод. Не знаю, что я скучаю.
-L
выключателем.
Хранить это вокруг ради полноты.
Ваш пример должен действительно работать. Синтаксис правильный, и вот скриншот, который я только что продемонстрировал , со старым добрым GNU wget
1.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