一、正则简介
1.正则表达式分两类:
基本正则表达式:BRE
扩展正则表达式:ERE
2.正则表达式的意义
- 处理大量字符串
- 处理文本
通过特殊符号的辅助,可以让linux管理员快速过滤、替换、处理所需要的字符串、文本,让工作高效。
通常Linux运维工作,都是面临大量带有字符串的内容,如:
- 配置文件
- 程序代码
- 命令输出结果
- 日志文件
正则表达式应用广泛,Linux仅受三剑客(sed、awk、grep)支持,其他命令无法使用
通配符是大部分普通命令都支持的,用于查找文件或者目录,而正则表达式 是通过三剑客命令在文件(数据流)中过滤内容。
二、Linux三剑客简介
1.文本处理工具,均支持正则表达式引擎
- grep:文本过滤工具,(模式:pattern)工具
- sed:stream editor,流编辑器:文本编辑工具
- awk:Linux的文本报告生成器(格式化文本),Linux上是gawk
2.正则表达式分类
Linux三剑客主要分两类
- 基本正则表达式(BRE)
BRE对应元字符有^$.[]*
- 扩展正则表达式(ERE)
ERE在BRE基础上,增加上 (){}?+|等字符
3.基本正则表达式BRE集合
- 匹配字符
- 匹配次数
- 位置锚定
4.扩展正则表达式ere集合
扩展正则表达式必使用grep -E才能生效
三、grep
1.简介
作用:文本搜索工具,格局用户指定的"模式(过滤条件)"对目标文本逐行进行匹配检查,打印匹配到的行
模式:有正则表达式的元字符及文本字符所编写出的过滤条件;
语法:
2.实践
cat /etc/passwd > ./passwd.txt grep -i "root" passwd.txt
反选
grep -i "root" passwd.txt -v -c root@ou-virtual-machine:~# grep -i "root" passwd.txt -v
找空行
grep '^$' passwd.txt -n
过滤注释行
grep '^#' passwd.txt -v -n
或者
grep '^[a-zA-Z]' passwd.txt -n
匹配w+前一个任意字符,或者w+后一个任意字符
grep 'w.' passwd.txt grep '.w' passwd.txt