grep(global search regular expression and print the line):全面搜索正则表达式并把行打印出来

             grep\fgrep\egrep 

grep工作规则:在一个或多个文件中搜索模板字符串。如果模板中有空格,则必须被引用;默认模板后的字符串是文件名称。搜索的结果直接显示在屏幕上,不影响原文件内容。


grep 返回结果:返回 0  搜索成功

                             返回1   搜索不成功

                             返回2   搜索的文件不存在

             根据返回结果可以判断搜索状态;因此grep可以用于shell脚本中。


grep正则表达式字符集:


^: 锚定行的开始


$: 锚定行的结束


.  代表任意的一个字符


* 代表零个或多个先前字符

[  ]:  匹配一个指定范围内的字符,如


输出以i开头的行

如:“[Gg]rep”匹配Grep和grep


[^ ]:匹配一个不在指定范围内的字符


输出不以i开头的行


'[^A-HG-Z]grep'匹配  不包含A-HG-Z的一个前导字符,后跟rep的行


\<  锚定行的开始 

\> 锚定行的结束   '\>grep'锚定以grep结尾的行


m:\{n\},重复m字符n次的行


m:\{n,\},重复(连续)m字符至少n次的行


m:\{n,t}   重复m字符n到t次的行


\w  匹配字母和数字字符,即[A-Za-z0-9],

如:  'g\w*p' 匹配以g开头,中间有零个或多个字母和数字字符,然后是p


\W 
\w的反置,匹配非数字和字母字符


\b 单词锁定符

如:  '\bgrep\b'锁定 grep单词



POSIX字符集: grep\egrep支持

只有放在[ ]中,才是有效的正则表达式

[[:alnum:]] 表示 [A-Za-z0-9]


[:alnum:]  数字和字母

[:alpha:]    字母

[:digit:]       数字

[:graph:]    非空字符 (非空格,控制字符)

[:lower:]     小写字母

[:upper:]     大写字母

[:xdigit:]     十六进制的字符

[:print:]       可以打印的字符,非空字符(包括空格)

[:space:]    所有空白字符(新行,空格,制表符)

[:cntrl:]       控制字符


Grep的命令:

-?

显示输出结果的上下?行    grep -2 pattern filename  显示匹配行的上下2行

-i   ---------ignore case

忽略大小写

-c     -----count

只显示行数,不显示结果

-b     ----------byte offset

打印匹配行之前打印该行的块号码

-f      ----------------file

从文件中提取模板,空文件,包含0个模板

-v     ----------revert match

反搜索,只显示不匹配的行

-V    -----version

显示版本信息

-n   --------在匹配行的前面打印出行号

-l    --------files--with--matches

打印匹配模板的文件清单

-L----------files-without-matches

不打印匹配模板的文件清单

-q  ---------------quiet

取消显示,只返回退出状态

-s   -------------silience

不显示关于文件不存在或者无法读取文件的错误


显示aa文件中至少连续5个小写字母的行