首页 > 系统服务 > 详细

shell命令之(一) 初探grep

时间:2015-10-13 19:21:22      阅读:216      评论:0      收藏:0      [点我收藏+]

    我一直秉持的观点就是用到啥就学啥,很所博客都列举了grep的所有选项,乍一看30个左右!话说回来,能都记住当然好啦,但是那样所花的时间按成本太高了,好了言归正传:

首先创建一个测试文件:a.txt

[root@jiangshan blog]# cat a.txt 

hell88

hello

Hello

nice

world

12345


(1) -v选项:--revert-match   #显示不包含匹配文本的所有行。这的v是小写的,我们知道大写V基本都是查询版本信息的,这里也不例外

    example:

    我要提取全是数字的行:

    [root@jiangshan blog]# grep -v [a-z] a.txt 

    12345

    #这里得注意了,通配符是匹配单个字符!之前想当然的这样写:grep [^a-z]  a.txt 

    [root@jiangshan blog]# grep  [^a-z] a.txt

    hell88

    12345 

    Hello

    结果提取出的为不全是小写字母的行


(2)-r选项:-r 递归查询,此处不作赘述


(3)-i选项:忽略字母大小写

    example:

[root@jiangshan blog]# grep -i h a.txt 

hell88

hello

Hello


(4)很多时候,我们需要过滤的条件有多个,那么我们是用管道连接多个grep?显然不是,这就要用到我们的-E选项了:

    example:

提取不以h(不论大小写)开头且不含数字的行?

[root@jiangshan blog]# grep -vEi "^h|[0-9]" a.txt 

nice

world


(5)-c选项:--count   #计算符合样式的行数

    example:

我们查看mysql进程数:

[root@jiangshan blog]# ps -ef|grep mysql -c

3


(6)-q选项:-q   --quiet或--silent   #不显示任何信息。

问题来了,既然它不显示任何信息,你是不是想说其然并卵?

可事实上他非常有用!可以应用于脚本中的逻辑判断。

    example:

我要判断a.txt中是否有helloworld,有就输出yes否则输出no

[root@jiangshan blog]# if  grep -q helloworld a.txt;then echo yes;else echo no;fi

no




    



本文出自 “破茧成蝶” 博客,请务必保留此出处http://qjslovemsn.blog.51cto.com/10615974/1702594

shell命令之(一) 初探grep

原文:http://qjslovemsn.blog.51cto.com/10615974/1702594

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!