Bash найти хэштеги из строки - PullRequest
2 голосов
/ 24 апреля 2020

Я новичок в написании сценариев оболочки и пытаюсь найти все хэштеги из строки, используя grep, это то, что у меня есть, но оно работает только для alphanumeri c символов

echo '<span><span>#?fooFOO0</span></span>' | grep -o '#[a-zA-Z0-9]'

Ответы [ 2 ]

1 голос
/ 24 апреля 2020

Если хэштег заканчивается до </span>, вы можете сделать

echo '<span><span>#?fooFOO0</span></span>' | grep -Po '#.*?(?=<)'

. *? означает не жадный поиск.

(? = <) - предварительный просмотр. </p>

0 голосов
/ 24 апреля 2020

Следующая команда выводит строку для каждого найденного hashtag:

❯ echo '<span><span>#?fooFOO0</span>#foo #bar</span>' | grep --fixed-strings --only-matching '#'
#
#
#

Опции

  • -F, --fixed-strings

    Интерпретировать PATTERN как список фиксированных строк (вместо регулярных выражений), разделенных символами новой строки, любой из которых должен соответствовать.

  • -o, --only-matching

    Печать только совпадающих (непустых) частей совпадающей строки, каждая из которых находится на отдельной выходной строке.

Предупреждение: --count или -c не будет давать количество хэштегов (3), но количество строк, содержащих один (только 1 здесь).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...