LINUX.ORG.RU

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


0

0

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

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

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

anonymous

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

anonymous
()
Ответ на: комментарий от sidor

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

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 ★★
()

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

sdio ★★★★★
()
Ответ на: комментарий от sidor

Спасибо большое за ответы! Действительно работает :)

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