免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1104 | 回复: 0
打印 上一主题 下一主题

Shell(2)-grep工具集使用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-19 14:32 |只看该作者 |倒序浏览
Grep简介
grep工具集由命令grep、egrep和fgrep组成的。grep命令在文件中全局查找指定的正则表达式,并且打印所有包含该正则表达式的行。egrep和fgrep都只是grep的变体。
grep命令在一个或多个文件查找某个字符模式。如果这个模式中包含空格,就必须要用引号把它括起来,要不要就会把空格之后的字符做为文件名输入。grep将匹配的结果输出发送到屏幕上,不会对原文件进行任何的修改。
l         命令格式
#grep word filename1 filename2 filename3
l         事例-1
#grep lvdbing /etc/passwd
l         说明
grep将在文件/etc/passwd中查找模式lvdbing,如果查找成功就把相应的行显示在屏幕上,如果没有找到就没有显示在屏幕上,如果是找不到指定的文件,就会报告错误。grep还会把执行状态返回,如果查找成功并且有找到匹配的模式,则返回0,如果查找成功但没有找到匹配的模式,则返回1,如果没有找到指定的文件,则返回2。

l         事例-2
#ps aux | grep lvdbing
l         说明
ps命令的输出通过管道送到grep,然后匹配到lvdbing的行都被输出来。

Grep的选项和元字符
Grep使用的正则表达式元字符
元字符
功能
示例
匹配对象
^
行首定位符
‘^man’
匹配所有以man开头的行
$
行尾定位符
‘man$’
匹配所有以man结尾的行
.
匹配单个字符
‘m..n’
匹配包含一个m,后跟两个字符,再跟一个n的行
*
匹配0个或多个重复的位于星号前的字符
‘*man’
匹配包含跟在0个或者多个空格的模式的man的行
[]
匹配一组字符中任一个
‘[Mm]an’
匹配包含Man或man的行
[x-y]
匹配指定范围内的一个字符
‘[A-Z]an’
匹配后面跟着an的一个A至Z之间的字符
[^]
匹配不在指定组内的字符
‘[^A-Z]’
匹配不在范围A至Z之间的任意一个字符
\
用来转义元字符
‘man\.’
匹配包含man,后面跟一个点(如果不转义的话则是匹配一个任意字符)
\
词首定位符
‘\
匹配包含以man开头的词的行
\>
词首定位符
‘man\>’
匹配包含以man结尾的词的行
\(..\)
匹配稍后将要使用的字符的标签
‘\(man\)age’
最多可以使用9个标签,模式中最左边的标签是第一个。例如,模式man被保存为标签1,之后可以用\1表示。
x\{m\}或
x\{m,\}或
x\{m,n\}
字符x的重复出现:m次、至少m次、至少m次且不超过n次
‘n\{5\}’
‘n\{3,\}’
‘n\{3,5\}’
匹配包含3~5个连续的字母n的行

Grep 的选项
选项
功能
-b
在每一行前面加上其所在的块号,根据上下文定位磁盘块时可能会用到
-c
显示匹配到的行的数目,而不是显示行的内容
-h
不显示文件名
-i
比较字符时忽略大小写的区别
-l
只列出匹配行所在文件的文件名,文件名之间用换行符分隔
-n
在每一行前面加上它在文件中的相对行号
-s
无声操作,即只显示报错信息,以检查退出状态
-v
反向查找,只显示不匹配的行
-w
把表达式作为词来查找,就好象它被\和\>所包含的一样。只适用grep



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/20294/showart_445581.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP