Linux Shell 写regex pattern 识别字符串的单词

2014-11-24 08:34:46 · 作者: · 浏览: 2

字符串:aa bb cc dd


要求:输出字符串里的单词


pattern 1:


*@*:~$ echo aa bb cc dd |grep \\b\\w*\\b


result:aa bb cc dd


pattern 2:用+号代替*


*@*:~$ echo aa bb cc dd |grep \\b\\w+\\b


result:没有输出


问题在哪呢,对了+得转义,加个\


pattern 3:


*@*:~$ echo aa bb cc dd |grep \\b\\w\+\\b


result:还是没有输出


这是怎么回事,搞来搞去,才知道怎么回事,看下面就知道了


pattern 4:


*@*:~$ echo aa bb cc dd |grep \\b\\w\\+\\b


result:aa bb cc dd


最后给一个计算单词个数的shell命令


echo aa bb cc dd |sed -e s/\\b\\w\\+\\b/x/g | sed -e s/\\s//g | wc -m(好像不对,输出的是5,而实际上不是只有4个吗)


望各位解惑。