LINUX.ORG.RU

Почему grep не срабатывает в случае «[0-9]+»?


0

0

Вот такая ситуация:

---------------------------------- $ echo "aaa111aaa" | grep '[0-9]+' $ echo "aaa111aaa" | grep '[0-9]*' aaa111aaa $ ----------------------------------

Почему в первом случае регулярка не удовлетворяет выражению? Вполне ведь удовлетворяет.. Ведь чисел в диапазоне 0-9 как минимум одно есть..

anonymous

Re: Почему grep не срабатывает в случае "[0-9]+"?

О чёрт. Склеело всё в одно строчку. Вот я что имел ввиду: `echo "aaa111aaa" | grep '[0-9]+'`. Почему оно не срабатывает?

anonymous ()

Re: Почему grep не срабатывает в случае "[0-9]+"?

точнее так (из мануала):

Grep understands two different versions of regular expression syntax: “basic” and “extended.” In GNU grep, there is no difference in available functionality using either syntax. In other implementations, basic regular expressions are less powerful. The following description applies to extended regular expressions; differences for basic regular expressions are summarized afterwards.

sidor ★★ ()

Re: Почему grep не срабатывает в случае "[0-9]+"?

Для таких простых случаев, чтобы не использовать egrep (grep -E)
я пишу так:
grep '[0-9][0-9]*'

sdio ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.