[i=s] 本帖最后由 盒饭强 于 2011-5-24 10:15 编辑 [/i]
因工作原因,正在自学LINUX。正在做RHCE033的实验手册。
一练习题如下:
使用grep显示passwd文件中所有“g”开头的帐号。
我是这样写的:
cut -d: -f1 passwd | grep g*
结果还是把所有的帐号都显示出来了。。。。。管道后面的GREP命令没有起作用。
求正解。。。。。能指导解释一下就更好了。谢谢了。
刚刚又重新多试了几次,发现用cut -d: -f1 passwd | grep g这样就可以正确的显示出来了。为什么查找 g*就不行呢?


haizdl@126.com 于 2011-06-04 13:37:47发表:
顶
hexuyue 于 2011-06-03 23:07:44发表:
不懂!
haizdl@126.com 于 2011-06-03 20:36:53发表:
再顶一个
haizdl@126.com 于 2011-06-03 20:36:43发表:
yanyongkg 讲的好,顶一个
pc101fan 于 2011-05-30 16:13:09发表:
恩,学习了!
634632257 于 2011-05-30 10:51:36发表:
路过瞧瞧
china19901107 于 2011-05-26 23:17:51发表:
不错不错,支持支持!!!!
hundanclark 于 2011-05-26 23:05:57发表:
ls -ld /etc/passwd | grep "^g"
wsxiemq 于 2011-05-25 09:00:56发表:
学习了。。
yongyun521 于 2011-05-24 18:11:04发表:
学习
年年年 于 2011-05-24 16:09:52发表:
顶二楼
chengweiwei 于 2011-05-24 12:12:47发表:
:0w5ty(1 学习
yanyongkg 于 2011-05-24 11:44:44发表:
使用grep显示passwd文件中所有“g”开头的帐号
1。楼主要显示以g开头的帐号, grep g 这个用法是不对的,但为什么你这里正好输出的结果也是正确的呢。原因是:grep g 只要字串中有g这个字符都会输出不管g是在开头或中间或尾部,而正好你当时的所有帐号中只有开头有g,没有任何帐号中间有字符g。你可以grep p试试,你看是不是ftp rpc等帐号也显示出来了。了解乎?
2。正确用法是grep '^g' 或 grep '^g.*'
3。这里的g*是正则表达式,*不是通配符的用法。g*表示重复g 0次或多次,也就是说g*可以匹配的有: 空值,g,gg,ggg,... 既然g*能匹配空值,当然gerp 'g*' 就列出了全部的帐户,也就是grep ''的意思(这里是两个单引号,之间不能有空格,表示空)
4。grep后面接的匹配表达式最好用单引号或双引号括起来,养成书写习惯