主要作用查找字符串。grep是linux中最常用的“文本处理工具”之一,grep与sed,awk合称linux中的三剑额。
grep全称:Global search Regular Expression and Print out the line
Global search: 全局搜索 Regular Expression: 正则表达式 Print out the line: 打印出这一行..
不使用正则表达式也可以使用grep, 只是与正则表达式结合,功能更强大。
-i 不区分大小写
-n 显示行号
--color 对匹配到的字符串高亮显示
-c 只统计符合条件的总行数,不打印匹配结果
-o 只打印匹配到的关键字,不打印整行
-B1 同时打印匹配到结果的前面一行-B(before)
-A1 同时打印匹配到结果的后面一行-A(after)
-C1 同时打印匹配到结果的前后一行-C(context)上下文的意思
-w 只匹配独立的单词,w(word), 比如:grep -w 'the' father
是不能匹配出father的, 但是grep the father可以。
-v 反向查找,即查找不包含关键字的行
-e 同时匹配多个关键字,各个关键字之间是“或”的关系, grep -e abc -e eft searchfile
; 查询在searchfile中,包含了abc或是包含eft的行。
-q 以静默方式执行,执行结果不会自动输出。同时-q只关心有没有匹配到字符,并不关心有多少条数据匹配到。并且匹配结果需要通过 echo $?才能看到。匹配到了,$?=0; 没匹配到 $?=1.
-E 使用扩展正则表达式匹配,使用该参数时,后面的关键字为扩展正则表达式,不使用此参数时,后面的关键字为基本正则表达式
-P 指定使用perl兼容的正则表达式。(不同开发语言中,正则表达式规则可能略有不同)
grep: 支持基本正则表达式
egrep: 支持扩展正则表达式,相当于 grep -E
fgrep: 不支持正则表达式,只能匹配写死的字符串,但是速度奇快,效率高,fastgrep.