1.作用
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户
正则表达式主要参数:
^ 行首定位符
$ 行尾定位符
? 匹配任意单个字符
* 匹配0或多个前一字符
[] 匹配一组字符中的任意一个(单个字符)
[^] 匹配不在指定字符组内的字符
\< 词首定位符
\> 词尾定位符
\(..\) 标记匹配的字符
\{ \} 重复出现的次数. \{m\} \{m,\} {\m,n\}
[[:alpha:]] 匹配字母 即[a-zA-Z]
[[:upper:]] 匹配大写字母 即[A-Z]
[[:lower:]] 匹配小写字母 即[a-z]
[[:digit:]] 匹配数字 即[0-9]
[[:alnum:]] 匹配数字与字母 即[0-9a-zA-Z]
[[:space:]] 匹配空格或tab键
[[:graph:]] 非空格
2.格式
grep [options]
3.主要参数
[options]主要参数:
-NUM :同时显示匹配行的上下NUM行
-c :只输出匹配行的计数
-i :不区分大小写
-h :查询多文件时不显示文件名
-l :查询多文件时只输出包含匹配字符的文件名
-n :显示匹配行及行号
-s :不显示不存在或无匹配文本的错误信息
-v :反检索,显示不包含匹配文本的所有行
-r :递归查询
-E :扩展(同egrep)
--color :高亮显示匹配到的关键字
[root@rhel5 data]# grep -2 xyz keyword #显示包含xyz的行并同时显示其上下两行
[root@rhel5 data]# grep xyz keyword* #显示所有以keyword开头的文件中包含xyz的行
[root@rhel5 data]# grep xyz keyword1 keyword2 keyword3 #显示文件keyword1 keyword2 keyword3中包含xyz的行
[root@rhel5 data]# grep -c xyz keyword #显示keyword文件中包含xyz的行的个数
[root@rhel5 data]# grep -h xyz keyword* #显示所有以keyword开头的文件中包含xyz的行且不显示文件名
[root@rhel5 data]# grep -l xyz keyword* #显示所有以keyword开头的文件中包含xyz的文件名
[root@rhel5 data]# grep -v a keyword #显示所有不包含a的行
[root@rhel5 data]# grep -v "a\|b" keyword #显示所有不包含a和b的行
[root@rhel5 data]# grep -vE "a|b" keyword #同上
[root@rhel5 data]# grep [0-9] keyword #显示包含数字的行
[root@rhel5 data]# grep '[a-z]\{4\}' keyword #显示所有包含每个字符串至少有4个连续小写字母的字符串的行
[root@rhel5 data]# grep keyword /data/* #在/data/目录下搜索包含字符串keyword的文件(显示文件的路径与包含keyword的行)
[root@rhel5 data]# grep -r title /boot/* #在/boot/目录及子目录下搜索包含字符串title的文件
[root@rhel5 data]# grep '\<xy' keyword #显示包含以xy开头的字符串的行(匹配xyz,而不匹配zxy)
[root@rhel5 data]# grep [[:alnum:]] keyword #显示包含字母和数字的字符串的行
[root@rhel5 data]# grep [[:upper:]] keyword #显示包含大写字母的字符串的行
本文转自Vnimos51CTO博客,原文链接:http://blog.51cto.com/vnimos/1042705,如需转载请自行联系原作者