grep -A | grep -o - PullRequest
       3

grep -A | grep -o

0 голосов
/ 23 декабря 2018

Эй, я пытаюсь вывести точно подходящие выражения, которые я хочу (и есть серия из них на HTML-странице).Для этого, чтобы иметь возможность избавиться от мусора, мне нужно использовать grep -A, а затем из этого результата сопоставить выражение, которое я хочу.Однако это не работает.То, что я ожидаю после

curl -s https://somewebsite.com|grep A- 2 '<h3 class="title">'|grep -o '<a href="[a-zA-Z0-9./]+">'

Я ожидаю получить:

только что-то вроде

<a href="/blah/blah/9/blah.">

, но вместо этого я получаю все обратно, как будто я не сделалвообще есть второй grep.

<h3 class="title">
<a href="/blah/blah/9/blah.">
</h3>

Не могли бы вы, ребята, помочь мне с этой проблемой?

Вот правка, которая может помочь вам, ребята, помочь мне.Если я сделаю следующее:

curl -s https://somewebsite.com|grep A- 2 '<h3 class="title">' >> test.txt
grep -o '<a href="[a-zA-Z0-9./]+">' test.txt

все работает просто отлично.

1 Ответ

0 голосов
/ 15 февраля 2019

Я думаю, вам нужно указать метасимволы использование в вашем шаблоне при использовании grep.Это можно сделать с помощью аргумента -E:

$ curl -s 'https://somewebsite.com' |\
    grep -A 2 '<h3 class="title">' |\
      grep -Eo '<a href="[a-zA-Z0-9.\/]+">'

# <a href="/blah/blah/9/blah.">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...