一、grep、egrep及fgrep
1、简介:
grep是一种强大的搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
2、命令
(1)grep命令:
支持使用基本正则表达式;
作用:文本搜索工具,根据用户指定的“pattern(过滤条件)”对目标文本逐行进行匹配检查;打印出符合条件的行;
命令格式:
grep [OPTIONS] PATTERN [FILE...]
常用选项:
①--color=auto:对匹配到的文本着色后高亮显示;
②-i:忽略字符大小写;
③-o: 仅显示匹配到的文本自身;
④-v, --invert-match : 反向匹配;
⑤-E : 支持扩展的正则表达式;
⑥-q, --quiet, --silient : 静默模式,不输出任何信息;
注:结合$?使用,获取上条命令的执行状态;
(2)egrep命令:
支持使用扩展正则表达式的grep命令,相当于grep -E;
命令格式:
egrep [OPTIONS] PATTERN [FILE...]
(3)fgrep命令:
不支持使用正则表达式;
命令格式:
grep [OPTIONS] PATTERN [FILE...]
二、正则表达式
由一类特殊字符及文本字符所编写的模式,其有些字符不表示其字面意义,而是用于表示控制或通配的功能;
1、基本正则表达式
基本正则表达式元字符:
字符匹配:
. : 匹配任意单个字符;
[]: 匹配范围内的任意单个字符;
[^]: 匹配范围外的任意单个字符;
示例测试:
匹配次数:
用在要指定其出现的次数的字符后面,用于限制其前面的字符要出现的次数;默认工作于贪婪模式;
*:匹配前面的字符任意次(0,1或多次)
.* : 任意长度的任意字符;
\+:匹配前面的字符至少一次;
\?:匹配前面的0次或1次,即前面的字符可有可无;
\{m\} : 其前面的字符出现m次,m为非负整数;
\{m,n\} : 其前面的字符出现m次,m为非负整数;[m,n]
示例测试:
位置锚定:
限制使用模式搜索文本,限制模式所匹配到的文本只能出现文本的哪个位置;
^ : 行首锚定;用于模式的最左侧,^PATTERN
$ : 行尾锚定;用于模式的最右侧,PATTERN$
^PATTERN$ : 要让PATTERN完全匹配一整行;
^$ : 空行;
^[[:apace:]]*$:
单词:由非特殊字符组成的连续字符(字符串)都被称为单词;
\<或\b:词首锚定,用于单词模式的左侧,格式为、\<PATTERN,\bPATTERN
\>或\b:词尾锚定,用于单词模式的右侧,格式为PATTERN\>,PATTERN\b
示例测试:
2、扩展正则表达式
扩展正则表达式的元字符:
字符匹配:
.:任意单个字符;
[]:范围内的任意单个字符;
[^]:范围外的任意单个字符;
示例测试:
匹配次数:
*:任意次;
?:0次或1次;
+:1次或多次;
{m}:匹配多次;
{m,n}:至少m次,至多n次;
{0,n}
{m,}
示例测试:
位置锚定:
^:行首
$:行尾
\<, \b:词首
\>, \b:词尾
示例测试:
转载于:https://blog.51cto.com/sohecate/1748837