* 匹配符号的怪事?放在首位没有输出

 

* 是匹配任何长度的字符

任何字符中都可以让它插在其中

但是今天 我把它插在字符串首位的时候

居然匹配不出任何行?(请告诉我是不是有什么我没有理解到,现在个人了解是在grep中*是匹配0个或0个以上,因为前面并没有符号,所以 * 没有生效。。。忘高人指点)

最后发现 在前面加上空格就可以匹配出来了。

例如:

1.一个文件夹下有以下文件

 

 [root@centos local]# ls
bin  games    ganglia.tar.gz  lib      rrdtool  share
etc  ganglia  include         libexec  sbin     src

 

2.使用命令 ls | grep "*tar.gz" 将tar.gz文件过滤出来(结果是没有任何输出

 

 [root@centos local]# ls
bin  games    ganglia.tar.gz  lib      rrdtool  share
etc  ganglia  include         libexec  sbin     src
[root@centos local]# ls | grep "*tar.gz"
[root@centos local]# ls | grep "*tar.gz"
[root@centos local]#
3.使用命令 ls | grep " *tar.gz" 将tar.gz文件过滤出来 (" *tar.gz" 这里有一个空格在*前面,这回有输出了

 

 

 [root@centos local]# ls | grep " *tar.gz"
ganglia.tar.gz
[root@centos local]#