Linux学习笔记(16)-grep及正则表达式2

Linux 1062℃

1.grep正则表达式扩展模式

grep [选项] 模式 [文件...]
  -E 使用扩展正则表达式,也和直接使用egrep命令
  -A 1 显示匹配行的后2行内容
  -B 2 显示匹配行的前2行内容
  -C 3 显示匹配行的前后2行内容

2.扩展正则表达式元字符

. 匹配任意单个字符
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符

3.扩展正则表达式次数匹配

* 匹配其前面的字符任意次
? 匹配其前面的字符1次或0次
+ 匹配其前面的字符至少1次
{m,n} 匹配至少m次,至多n次

4.扩展正则表达式位置锚定

^ 锚定行首,此字符后面的任意内容必须出现在行首
$ 锚定行尾,此字符前面的任意内容必须出现在行尾
\<或\b 锚定词首,其后面的任意字符必须作为单词首部出现
\>或\b 锚定词尾,其前面的任意字符必须作为单词的尾部出现

5.扩展正则表达式分组

() 分组,把括号里面当做整体
\1,\2,\3,... 引用第n个成对括号内的内容

6.扩展正则表达式的或

 | 如:C|cat表示C或cat

7.相关练习

#显示所有以数字结尾且文件名中不包含空白的文件;
ls *[^[:space:]]*[0-9]
#找出/boot/grub/grub.conf文件中1-255之间的数字;
\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>
#找出网络配置文件中的iP地址;
ifconfig | egrep '\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>'
#找出网络配置文件中的iP地址(改进);
ifconfig | egrep --color '(\<([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])\>'

转载请注明:零五宝典 » Linux学习笔记(16)-grep及正则表达式2