http://blog.chinaunix.net/uid-7294334-id-168180.html

grep:根据模式去搜索文本,并将符合模式的文本行显示出来

pattern:模式:由文本字符和正则表达式元字符组合而成的匹配条件。


参数:

-i:ignore case,忽略字符大小写。

--colour:设置匹配字符串的颜色。高亮显示

-v:反向查找。显示没有被模式匹配的行。

-o:只显示被模式匹配到的字符串

-c:计算出一共匹配了多少行

-A :除了显示被匹配的行之外,还显示之后的n行

-B:除了显示被匹配的行之外,还显示之前的n行

-C:除了显示被匹配的行之外,还显示之前之后各n行

-H:显示每个匹配的字符串的文件名

-n:显示每个匹配的字符串在文件中的行数


正则表达式:

元字符:

字符个数的元字符:

*:前面的字符出现任意次数

\?:前面的字符出现0次或一次

.:匹配任意单个字符

\{m\n}:匹配之前的字符,至少m次,至多n次。必须加\转义,否则bash shell会借读为命令行展开

.*组合起来:表示任意长度的任意字符


位置牟定元字符:

^:牟定行首,此字符后面的字符串必须出现在行首

$:牟定行尾

^$:表示空白行


字符匹配元字符:

[]:匹配指定范围内的任意单个字符

[^]:匹配指定范围外的任意单个字符

\<:后面的字符必须以单词首部出现

\>前面的字符必须以单词的尾部出现

\<\>:必须是单词:\<root\> 查找root这个单词

字符集:使用时应该再使用一个方括号:[[:digit:]]

[:digit:]:数字

[:lower:]:小写字母

[:upper:]:大写字母

[:punot:]:标点符号

[:space:]:空白字符

[:aipha:]:所有字母

[:ainum:]:所有字母和数字


分组元字符:

\(\): \(ab\)*:表示ab可以出现一次或多次

被()括起来的字符可以在以后使用:\1,\2,\3