【Regular Expression】RE分类及案例

背景知识

正则表达式分为三类:基础正则表达式、扩展正则表达式、Perl正则表达式(Perl内建)

通俗来说,这三个一个比一个强大,支持的规则匹配字符更多

1.匹配IP

ip addr | grep -P '(((d{1,2})|(1d{2})|(2[0-4]d)|(2[0-5]{2})).){3}((d{1,2})|(1d{2})|(2[0-4]d)|(2[0-5]{2}))'
ip addr 获得本机IP
grep -P 使用Perl正则表达式 不带 -P 参数时,表示使用 基础正则表达式
 位置匹配,匹配字符串边界
d 是[0-9]的另一个写法
( ) 括号 是 使用了 子表达式
{ } 代表 匹配到的字符串的重复次数
| 或者


2.匹配MAC地址 -P 表示使用Perl正则表达式
ip addr | grep -P '([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})'
 
常握 Linux 下几种常用文本工具的特点,对于我们更好的使用正则表达式是很有帮助的

grep , egrep 正则表达式特点:
1)grep 支持:BREs、EREs、PREs 正则表达式

grep 指令后不跟任何参数,则表示要使用 ”BREs“ 

grep 指令后跟 ”-E" 参数,则表示要使用 “EREs“

grep 指令后跟 “-P" 参数,则表示要使用 “PREs"

 

2)egrep 支持:EREs、PREs 正则表达式

egrep 指令后不跟任何参数,则表示要使用 “EREs”

egrep 指令后跟 “-P" 参数,则表示要使用 “PREs"

 

3)grep 与 egrep 正则匹配文件,处理文件方法

a. grep 与 egrep 的处理对象:文本文件

b. grep 与 egrep 的处理过程:查找文本文件中是否含要查找的 “关键字”(关键字可以是正则表达式) ,如果含有要查找的 ”关健字“,那么默认返回该文本文件中包含该”关健字“的该行的内容,并在标准输出中显示出来,除非使用了“>" 重定向符号,

c. grep 与 egrep 在处理文本文件时,是按行处理的

 

sed 正则表达式特点
1)sed 文本工具支持:BREs、EREs

sed 指令默认是使用"BREs"

sed 命令参数 “-r ” ,则表示要使用“EREs"

2)sed 功能与作用

a. sed 处理的对象:文本文件

b. sed 处理操作:对文本文件的内容进行 --- 查找、替换、删除、增加等操作

c. sed 在处理文本文件的时候,也是按行处理的

Awk(gawk)正则表达式特点
1)Awk 文本工具支持:EREs

awk 指令默认是使用 “EREs"

2)Awk 文本工具处理文本的特点

a. awk 处理的对象:文本文件

b. awk 处理操作:主要是对列进行操作
原文地址:https://www.cnblogs.com/zhengwenqiang/p/6839574.html