\ D не поддерживается основными выражениями grep? - PullRequest
93 голосов
/ 01 августа 2011

Это не генерирует никакого вывода.Как получилось?

$ 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

Ответы [ 2 ]

158 голосов
/ 01 августа 2011

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

daenyth@Bragi ~ $ echo 1 | grep -P '\d'
1
daenyth@Bragi ~ $ echo 1 | grep '[[:digit:]]'
1
16 голосов
/ 01 августа 2011

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

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