根据给定的某一类模式来全局搜索文件并把和模式匹配的文本显示出来。
pattern
:文本字符和正则表达式的元字符组合而成的匹配文件。
三个家族命令:
grep
egrep
fgrep
grep
grep " 格式模板内容" [被查找文件] 备注:{只显示文件中符合查找条件的行}
选项
[-i]:忽略大小写
[-colour]:加颜色
[-v]:反向查找
[-o]:只显示被匹配到模式本身[忽略行]。
[-E ]: 使用扩展正则表达式
[-A 数字]: 指定匹配到字符的后紧跟的行,由-A后面的数字决定行数
[-B 数字]: 指定匹配到字符的前面的行
[-C 数字]: 指定匹配到字符的上下紧跟的行
正则表达式 REGEXP
正则表达式默认工作在贪婪模式
元字符
. 任意单个字符
* 匹配其`前面`的字符`任意次` [a*b:a出现任意次后面跟b]
.* 匹配任意长度的任意字符
? 匹配其前面的字符一次或者零次
{m,n} 匹配其前面的字符至少m次,至多n次
{1,} 匹配其前面的字符至少1次
{0,n} 匹配其前面的字符最多n次
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
[:digit:] 匹配数字
[:lower:] 匹配小写字母
[:upper:] 匹配大写字母
[:punct:] 匹配标点符号
[:space:] 匹配空白字符
[:alpha:] 匹配所有字母
[:alnum:] 匹配所有字母数字
位置锚定
^ 锚定行首,此字符后面的任意内容必须出现在行首
$ 锚定行尾,此字符前面的任意内容必须出现在行尾
\<或者\b 锚定词首,其后面的任意字符必须作为单词的首部出现
\>或者\b 锚定词尾,其前面的任意字符必须作为单词的尾部出现
^$
空白行
分组
\(\) 将括号内的字符作为一个整体出现
\\+数字 反向引用
扩展正则表达式【egrep】 Extended REGEXP
. 任意单个字符
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
*: 匹配其`前面`的字符`任意次`
? 匹配其前面的字符一次或者零次
+ 匹配其前面的字符至少一次
{m,n}匹配其前面的字符至少m次,至多n次
^ 锚定行首,此字符后面的任意内容必须出现在行首
$ 锚定行尾,此字符前面的任意内容必须出现在行尾
\<或者\b 锚定词首,其后面的任意字符必须作为单词的首部出现
\>或者\b 锚定词尾,其前面的任意字符必须作为单词的尾部出现
() 将括号内的字符作为一个整体出现
\+数字 反向引用
| 或者
fgrep
不支持正则表达式