egrep命令: 根据模式(文本字符和扩展正则表达式的元字符组合而成之匹配条件)搜索文本,
并将符合模式的文本行显示出来。
格式:egrep [选项] 匹配条件 文本名称
egrep 等于 grep -E
选项: -i: 忽略大小写
-v: 显示没有被模式匹配到的行
-o:只显示被模式匹配到的字符串
--color: 搜索出来文件高亮度显示
-A: 匹配指定行的下几行
-B: 匹配指定行的上几行
-C: 匹配指定行的上下几行
正则表达式:Regular Expression, 简称REGEXP
元字符:
.: 匹配任意单个字符
[]: 匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
例如:特殊字符集合:[:digit:], [:lower:], [:upper:], [:punct:], [:space:], [:alpha:], [:alnum:]
匹配次数:
*: 匹配其前面的字符任意次
.*: 任意长度的任意字符
?: 匹配其前面的字符1次或0次,并不像基本正则表达式,无需加\
{a,d}:匹配其前面的字符至少a次,至多d次,并不像基本正则表达式,无需加\
例如:{1} 表示:前面字符匹配1次
{0,6} 表示: 前面字符至少匹配0次,最多6次
位置锁定或叫锚定:
^: 锁定行首,此字符后面的任意内容必须出现在行首
举例说明:显示/etc/passwd文件中r开头的行
egrep ‘^r‘ /etc/passwd
$: 锁定行尾,此字符前面的任意内容必须出现在行尾
举例说明:显示/etc/passwd文件中bash结尾的行
egrep ‘bash$‘ /etc/passwd
^$: 表示 空白行
\<或\b: 锚定词首,其后面的任意字符必须作为单词首部出现
\>或\b: 锚定词尾,其前面的任意字符必须作为单词的尾部出现
举例说明:显示/etc/passwd文件中以root开头并以root词结尾的行
egrep ‘^root\>‘ /etc/passwd
分组:( ) 并不像基本正则表达式,无需加\
例如:(mn)* 表示匹配任意mn组合字符
后向引用
\1: 引用第一个左括号以及与之对应的右括号所包括的所有内容
\2: 引用第二个左括号以及与之对应的右括号所包括的所有内容
\n: 引用第n个左括号以及与之对应的右括号所包括的所有内容
或者: |
举例说明:
1.D|dog 代表D和dog,而不是Dog和dog
2.找出/boot/grub/grub.conf文件中1-255之间的数字
egrep --color ‘\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>‘ /boot/grub/grub.conf
3.找出ifconfig命令中的ip地址:再提示一下,egrep 等于 grep -E
ifconfig | grep --color -E ‘(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){3}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>‘