这不会产生任何输出.怎么会?
$ echo 'this 1 2 3' | grep '\d\+'
Run Code Online (Sandbox Code Playgroud)
但这些做到:
$ echo 'this 1 2 3' | grep '\s\+'
this 1 2 3
$ echo 'this 1 2 3' | grep '\w\+'
this 1 2 3
Run Code Online (Sandbox Code Playgroud)
Dae*_*yth 174
grep
默认模式是(iirc)POSIX正则表达式,并且\d
是pcre.你可以传递-P
给gnu grep,用于perl-like regexp,也可以[[:digit:]]
代替\d
.
daenyth@Bragi ~ $ echo 1 | grep -P '\d'
1
daenyth@Bragi ~ $ echo 1 | grep '[[:digit:]]'
1
Run Code Online (Sandbox Code Playgroud)
Cha*_* Ma 17
试试这个 $ echo 'this 1 2 3' | grep '[0-9]\+'