LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 580|回复: 0

模式匹配问题

[复制链接]
发表于 2005-9-14 17:25:47 | 显示全部楼层 |阅读模式
我刚刚接触linux不久,最近被一个问题困扰,希望各位大虾给与指教。
对于shell下的文件名模式匹配和正则表达式匹配,存在的疑惑是:是否对于grep命令使用的是正则表达式的模式匹配?而对于如ls,cd,rm都是文件名模式匹配?
第二,对于grep命令来说,有的时候将要匹配的模式打上双引号之后,为何结果就不一样了?例如:

[zhangry@tulip z]$ cat test.log
a.log
ab.log
b.log
test.log                 //test.log中包括这个四行
[zhangry@tulip z]$ cat b.log      //b.log包括这一行,其余文件都是空的
a.log
[zhangry@tulip z]$ grep a* test.log            //按照我的理解,这里的意思就应该a可以                                      出现0次或者多次,那么应该是匹配                                      test.log中的所有行,可是,结果为什么是                                      这个样子?而且它似乎在所有的文件里都                                      找了,而不是只在test.log里面找
test.log:a.log                       
[zhangry@tulip z]$ grep "a*" test.log          //加上双引号就对了,这个是什么道理呢?
a.log
ab.log
b.log
test.log
[zhangry@tulip z]$ grep * test.log   //对于正则表达式,单一个*是空串的意思么?那为何还有结果?
b.log:a.log
test.log:a.log
test.log:a.log

谢谢~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表