免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 我是笨笨
打印 上一主题 下一主题

grep的*到底是做什么的?它是怎么处理*的?好奇怪! [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-08-24 16:33 |只看该作者
回复 10# 我是笨笨


    那你试试 ls . /ls */ls .*能明白不?

论坛徽章:
0
12 [报告]
发表于 2010-08-24 16:42 |只看该作者
回复  我是笨笨


    那你试试 ls . /ls */ls .*能明白不?
好看的附件 发表于 2010-08-24 16:33


这个我知道呀,但下面这个我就不明白了
cd /
grep r..t /etc/passwd
ls -d r..t
什么时候算shell的通配,什么时候算grep的正则?

论坛徽章:
0
13 [报告]
发表于 2010-08-24 16:46 |只看该作者
grep . /etc/passwd
grep * /etc/passwd
grep .* /etc/passwd
分别是什么意思啊?感觉shell的通配和正则 ...
我是笨笨 发表于 2010-08-24 16:31



grep . /etc/passwd  .是代表任意单个字符,一般情况下要除开回车.
grep * /etc/passwd *是代表前字符出现0次以上.
grep .* /etc/passwd .*代表任何字段.

*等同于{0,)  +等同于{1,}  ?等同于{0,1}

论坛徽章:
0
14 [报告]
发表于 2010-08-24 16:48 |只看该作者
回复  我是笨笨


    那你试试 ls . /ls */ls .*能明白不?
好看的附件 发表于 2010-08-24 16:33



    特别提到的是ls和grep所用的"*"通配符其含义是不大一样的.

论坛徽章:
0
15 [报告]
发表于 2010-08-24 16:50 |只看该作者
回复 12# 我是笨笨


    shell认的是shell的通配符,grep认的是正则表达式,但是你写在命令行上得经过shell的处理后才会传给grep命令。明白?

论坛徽章:
0
16 [报告]
发表于 2010-08-24 16:56 |只看该作者
grep . /etc/passwd  .是代表任意单个字符,一般情况下要除开回车.
grep * /etc/passwd *是代表前字 ...
wild_li 发表于 2010-08-24 16:46


讲得很透彻!

论坛徽章:
0
17 [报告]
发表于 2010-08-24 16:57 |只看该作者
回复  我是笨笨


    shell认的是shell的通配符,grep认的是正则表达式,但是你写在命令行上得经过she ...
好看的附件 发表于 2010-08-24 16:50


谢谢,明白了,在shell里先用*匹配到了所有的文件名,然后再用这些文件名作为匹配去匹配的/etc/passwd,是这样吗?

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
18 [报告]
发表于 2010-08-24 16:57 |只看该作者
本帖最后由 blackold 于 2010-08-24 17:10 编辑

要解释清楚这些问题应该掌握shell基础——shell命令的解释流程。

当你按下<enter>时,shell就开始进行一系列处理(参考http://bbs.chinaunix.net/thread-1772129-1-2.html), 就像按下火箭发射按钮。

就这个问题来说,*是未引用的通配符,shell先解释,解释的结果也当前目录下的文件有关。

之后,再由grep来解释(执行命令)

论坛徽章:
0
19 [报告]
发表于 2010-08-24 16:59 |只看该作者
回复 17# 我是笨笨


    还是黑哥说的比较专业

论坛徽章:
0
20 [报告]
发表于 2010-08-24 17:05 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP