一、grep的定义
Grep的全写:(global search regular expression(RE)and print out the line),全面搜索正则表达式并把行打印出来。是一个可以从文件或流中查找字符串的一个命令行工具,它可以通过使用正则表达式来更灵活的查找一个字符串,就是通过复杂的模式进行查找已满足你的需求。
grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep、fgrep。
二、grep的语法及其用法
grep [options] PATTERN [FILE...]
-i :表示忽略字符大小写
--color :加颜色
-v :显示没有被模式匹配到的行
-o:只显示被模式匹配到的字符串。
三、正则表达式
正则表达式,又称规则表达式。(Regular Expression,在代码中常简写为regex、regexp或RE)。正则表达式通常被用来检索、替换那些符合某个(规则)的文本。
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个规则字符串用来表达对字符串的一种过滤逻辑。
1、元字符
(1) . : 匹配任意单个字符
(2)表示字符个数的元字符
* :表示匹配其前面的字符任意次
. * : 任意长度的任意字符
(3)问号的使用
\? :匹配其前面的字符1次或0次
\{m,n\} :匹配其前面的字符至少m次,至多n次
(4)位置锚定:
^ :锚定行首,此字符后面的任意内容必须出现在行首
$ :锚定行尾,此字符前面的任意内容必须出现在行尾
^$ :空白行
\< 或\b :锚定词首,其后面的任意字符必须作为单词首部出现
\> 或 \b:锚定词尾,其前面的任意字符必须作为单词的尾部出现
(5)分组:
\(\)
四、正则表达用法
正则表达式分为两类:Basic REGEXP (基本正则表达式) ; Extended REGEXP :扩展正则表达式
(1)基本正则表达式元字符:
. :任意单个字符
[] :指定范围内的任意字符
[^] :指定范围外的任意单个字符
次数匹配:
*:表示匹配其前面的字符任意次
\?:表示匹配其前的字符是可有可无的
\{m,n\} :匹配其前面的字符至少m次,至多n次
grep:使用基本正则表达式定义的模式来过滤文本的命令。
五、扩展正则表达式
字符匹配:
. :匹配任意单个字符
[] :匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
次数匹配:
*:表示匹配其前字符任意次
?:表示匹配其前字符0次或1次
+:表示匹配其前字符至少1次
{m,n} :匹配其前面的字符至少m次,至多n次
位置锚定:
^ :锚定行首,此字符后面的任意内容必须出现在行首
$ :锚定行尾,此字符前面的任意内容必须出现在行尾
\< 或\b :锚定词首,其后面的任意字符必须作为单词首部出现
\> 或 \b:锚定词尾,其前面的任意字符必须作为单词的尾部出现