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

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

grep'root' /etc/passwd搜索/etc/passwd文件中包含有root字符的行显示出来

-i:只显示被模式匹配的行

--color:被模式匹配的行用颜色显示出来

-v:只显示没有被模式匹配的行

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

2、正则表达式:

元字符:

.:表示匹配任意单个字符

grep'r..t' /etc/passwd

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

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

匹配次数(贪婪模式):(贪婪模式表示尽可能长的模式去匹配)

*:表示匹配其前面的字符任意次

a*b表示a出现任意次后面跟了个b  a,b,ab,aab,acb,amnb最后三个是不可以的

.*:匹配任意长度的任意字符

a.*b表示a开头b结尾中间是什么都可以  a,b,ab,aab,acb,amnb前面两个是不可以的

\?:表示匹配其前面的字符1次或0次

\{m,n}:表示匹配其前面的字符至少m次至多n次(\是用作转义的以免{}被shell解释)

\{1,\}表示最少一次多了不限 \{0,3\}表示最多3次少了不限

grep'a.\{1,3\}b' file表示a和b之间出现1个字符2个字符3个字符任何都可以但最少出现1个最多出现3个

位置锚定:

^:锚定行首 此字符后面的任意内容必须出现在行首

$:锚定行尾 此字符前面的任意内容必须出现在行尾

grep'w$' /etc/inittab搜索/etc/inittab中以w结束的行

^$:空白行

grep^$ /etc/inittab | wc -l

\<或\b:锚定词首  表示其后面的任意字符必须作为单词首部出现

\>或\b:锚定词尾  表示其后面的任意字符必须作为单词尾部出现

\(\):分组

grep"\(ab\)*" file表示找file这个文件里面出现ab的行和没出现的ab的行

3、grep:使用基本正则表达式定义的模式来过滤文本的命令(默认)

-i -v-o --color都属于基本正则表达式

-E:使用扩展正则表达式

4、扩展正则表达式:

扩展正则表达式的元字符

字符匹配:

.:表示匹配任意单个字符

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

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