一尘不染

grep的基本表达式不支持\ d吗?

linux

这不会产生任何输出。怎么来的?

$ 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

阅读 456

收藏
2020-06-03

共1个答案

一尘不染

grep的默认模式是(iirc)POSIX正则表达式,并且\d是pcre。您可以传递-P给gnu
grep,以获得类似perl的正则表达式,也可以使用[[:digit:]]代替\d

daenyth@Bragi ~ $ echo 1 | grep -P '\d'
1
daenyth@Bragi ~ $ echo 1 | grep '[[:digit:]]'
1
2020-06-03