一、linux正则表达式与三剑客知识应用实践
正则表达式介绍
1、什么是正则表达式
作用和特殊字符一样
正则表达式是为处理大量的字符串及文本而定义的一套规则和方法。
开发者
2、提高效率,快速获取到想要的内容
3、适用于三剑客命令 grep(egrep) sed awk
以行为单位处理,
例如用规则获取ip:#ifconfig eth0 |sed -rn '2s#^.*inet(.*) net.*$#\1#gp'
3、有关正则表达式容易混淆的事项:
和通配符区别;
开发正则,一般是perl兼容正则表达式;
linux三剑客正则表达式
二、环境准备
1、别名设置 #alias grep='grep --color'
2、注意LC_ALL环境变量的设置
export LC_ALL=C
三、grep:

grep分类:
1、基本正则表达式BRE
适用于grep
^尖角号 以...开头 ^ninhao:以nihao开头
$美元符 以..结尾 以nihao$结尾
^$ 空行以结尾开头,以开头结尾,就是空行
. 匹配任意一个且只有一个字符
.$ 以任意字符节点 结尾
\ 让有意义的字符推掉马夹还原本义
* 重复前面字符0次或多次
^.* 以任意字符开头
.*$ 以任意字符结尾
[abc] 匹配[]集合内的任意一个字符
[^abc] 匹配不包含[]集合任意字符
a{n,m} 匹配前一个字符最少n次,最多m次
a{n,} 匹配前一个字符最少n次
a{n} 匹配前一个字符正好n次
a{,m} 匹配前一个字符最多m次
2、扩展正则表达式ERE
适用于egrep
+ 匹配前一个字符1次或1次以上
[:/]+ 匹配冒号或/字符1次或1次以上
? 匹配的一个字符0次或1次
| 分组或者同时过滤多个字符串
() 分组过滤被括起来的东西表示一个整体
()()\1\2 \1第一个括号后项引用,\2第二个括号引用,
()==\1




