Driver86
@Driver86
Немодератор toster.ru

Почему grep regex не работает без экранирования?

вот так:

grep "[0-9]+" /file.txt

Не работает (ничего не находит).

Если экранировать +, т.е.:

grep "[0-9]\+" /file.txt

То работает. Аналогично и с фигурными скобками.

В чём дело? В инете все примеры без экранирования.
  • Вопрос задан
  • 376 просмотров
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Почему grep regex не работает без экранирования?

Из-за разницы между basic и extended синтаксисом grep. См. info grep:

3.6 Basic vs Extended Regular Expressions
=========================================

In basic regular expressions the meta-characters ‘?’, ‘+’, ‘{’, ‘|’,
‘(’, and ‘)’ lose their special meaning; instead use the backslashed
versions ‘\?’, ‘\+’, ‘\{’, ‘\|’, ‘\(’, and ‘\)’.


Используйте grep -E или egrep чтобы получить extended синтаксис по умолчанию.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Wanted. Санкт-Петербург
До 450 000 ₽
Wanted. Санкт-Петербург
До 100 000 ₽
Wanted. Санкт-Петербург
До 120 000 ₽
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект