1、功能描述
grep 命令在一个或多个文件中查找与指定模式匹配的字符串。如果模式里包含有空格,必须用引号括起来。grep的模式只能是一个被引号括起来的字符串或者是一个单词,后面紧跟着的参数都被当作文件名。grep命令把结果输出到标准输出上,并不改变被搜索的源文件。
2、命令格式
grep [选项] pattern filename1 filename2 ...
3、主要参数
[options]主要参数:
选项 | 功能 |
-b | 在每一行前面加上其所在的块号,根据上下文定位磁盘块时可能会用到。 |
-c | 显示匹配到的行的数目,而不显示行的内容 |
-h | 不显示文件名 |
-i | 比较字符的时候忽略大小写的区别 |
-l | 只列出匹配行所在文件的文件名(每个文件名只列一次),文件名之间用换行符分隔。 |
-n | 在每一行前面加上它在文件中的相对行号 |
-s | 无声操作,即只显示报错信息,以检查退出状态 |
-v | 反向查找,只显示不匹配的行 |
-w | 全字匹配 |
grep –n ‘^south’ datafile ----- 选项-n在找到指定模式的行前面加上其行号在一并输出
grep –i ‘pat’ datafile ----- 选项-i 关闭大小写敏感性,表达式pat包含任意大小写的组合都符合
grep –v ‘test’ datafile -----查找所有不包含test的行
grep –l ‘test’ * ----- 查询输出当前目录下所有包含test的文件名
4、支持的正则表达式元字符
元字符 | 功能 | 实例 | 匹配结果 | 备注 |
^ | 行首定位符 | grep “^test” datafile | 打印所有以test开头的行 | |
$ | 行尾定位符 | grep “test$” datafile | 打印所有以test结尾的行 | |
. (点) | 匹配除“/n”之外的任何单个字符 | /t..t/ | 匹配包含一个t,后跟两个字符,在跟一个t的行。 | 定位.本身只需加上转义符即可 |
* | 零次或多次匹配前面的字符或子表达式 | /t*est/ | 匹配包含0个或者多个t后跟est的行。可以匹配:est、test、ttest | |
[] | 匹配一组字符中的任一个 | /[Tt]est/ | 匹配包含Test或者test行 |
|