Подтвердить что ты не робот

Не поддерживается ли \d базовыми выражениями grep?

Это не создает никакого вывода. Почему?

$ echo 'this 1 2 3' | grep '\d\+'

Но это делают:

$ echo 'this 1 2 3' | grep '\s\+'
this 1 2 3

$ echo 'this 1 2 3' | grep '\w\+'
this 1 2 3
4b9b3361

Ответ 1

grep Режим по умолчанию - (iirc) POSIX regex, а \d - pcre. Вы можете передать -P в gnu grep, для perl-подобных регулярных выражений или использовать [[:digit:]] вместо \d.

[email protected] ~ $ echo 1 | grep -P '\d'
1
[email protected] ~ $ echo 1 | grep '[[:digit:]]'
1

Ответ 2

Попробуйте $ echo 'this 1 2 3' | grep '[0-9]\+'