这不会产生任何输出。怎么来的?
$ 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
grep的默认模式是(iirc)POSIX正则表达式,并且\d是pcre。您可以传递-P给gnu grep,以获得类似perl的正则表达式,也可以使用[[:digit:]]代替\d。
grep
\d
-P
[[:digit:]]
daenyth@Bragi ~ $ echo 1 | grep -P '\d' 1 daenyth@Bragi ~ $ echo 1 | grep '[[:digit:]]' 1