Linux文本检索工具——grep

2015-12-2910:57:00Linux文本检索工具——grep已关闭评论 693

I.介绍
grep命令是个强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

II.用法
grep [options]

III.主要参数
[options]主要参数:
-c 只输出匹配行的计数
-I 不区分大 小写(只适用于单字符)
-h 查询多文件时不显示文件名
-l 查询多文件时只输出包含匹配字符的文件名
-n 显示匹配行及行号
-s 不显示不存在或无匹配文本的错误信息
-v 显示不包含匹配文本的所有行

pattern正则表达式主要参数:

\ 忽略正则表达式中特殊字符的原有含义
\? 匹配紧挨在前面的字符0次或1次
^ 匹配正则表达式的开始行
$ 匹配正则表达式的结束行
^$ 匹配空白行
\ 到匹配正则表达式的行结束
[ ] 单个字符,如[A]即A符合要求
[ - ] 范围,如[A-Z],即A、B、C一直到Z都符合要求
. 所有的单个字符
* 有字符,长度可以为0

IV.示例
grep "\" /etc/passwd 文件中匹配到the行为止
grep ^root /etc/passwd 文件中以root开头的行
grep root$ /etc/passwd 文件中以root结尾的行
grep --color "ho\{1,2\}" /etc/passwd 文件中h后面跟o,并且o只出现一次或两次的行
匹配IP地址
grep -E -o '(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9] {2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0- 4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])'