红联Linux门户
Linux帮助

菜鸟新人一菜鸟问题求解

发布时间:2011-05-24 10:07:02来源:红联作者:盒饭强
[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*就不行呢?
文章评论

共有 13 条评论

  1. haizdl@126.com 于 2011-06-04 13:37:47发表:

    顶

  2. hexuyue 于 2011-06-03 23:07:44发表:

    不懂!

  3. haizdl@126.com 于 2011-06-03 20:36:53发表:

    再顶一个

  4. haizdl@126.com 于 2011-06-03 20:36:43发表:

    yanyongkg 讲的好,顶一个

  5. pc101fan 于 2011-05-30 16:13:09发表:

    恩,学习了!

  6. 634632257 于 2011-05-30 10:51:36发表:

    路过瞧瞧

  7. china19901107 于 2011-05-26 23:17:51发表:

    不错不错,支持支持!!!!

  8. hundanclark 于 2011-05-26 23:05:57发表:

    ls -ld /etc/passwd | grep "^g"

  9. wsxiemq 于 2011-05-25 09:00:56发表:

    学习了。。

  10. yongyun521 于 2011-05-24 18:11:04发表:

    学习

  11. 年年年 于 2011-05-24 16:09:52发表:

    顶二楼

  12. chengweiwei 于 2011-05-24 12:12:47发表:

    :0w5ty(1 学习

  13. 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后面接的匹配表达式最好用单引号或双引号括起来,养成书写习惯