1.1 正则表达式
什么是正则表达式?
a.正则表达式就是为处理大量的字符串及文本而定义的一套规则和方法。
b.其工作是以行为单位进行处理,一次处理一行。
c.可以提高效率,快速获取到想要的内容。
d.适用于三剑客命令grep(egrep)、sed、awk
注:易混淆事项
和通配符区别
开发人员正则,一般是perl兼容正则表达式
Linux系统三剑客正则表达式
正则表达式分类
a. 基础正则(BRE)
^ 尖角号 以...什么开头 --- ^mango 匹配以mango开头的行
$ 美元符号 以...什么结尾 --- mango$ 匹配以mango结尾的行
^$ 表示空行
. 点号 匹配任意一个且只有一个字符(不能匹配空行)
\ 转义字符 让有特殊含义的字符还原本义
* 匹配前一个字符出现0次或多次
.* 匹配所有内容
[abc] 匹配[ ]里任意一个字符a或b或c;也可以写成[a-c]
[^abc] 匹配不包含^后的任意字符a或b或c,这里^表示取反
b. 扩展正则(ERE)
+ 加号 匹配前一个字符1次或1次以上
[:/]+ 匹配括号内的:或者/字符1次或1次以上
? 匹配前一个字符0次或1次
| 表示或者 即表示同时过滤多个字符串
() 分组过滤被括起来的内容表示一个整体,另外()的内容可以被后面的\n引用,n为数字
\n 引用前面()里的内容
a{n} 匹配前一个字符n次
a{n,} 匹配前一个字符最少n次
a{,m} 匹配前一个字符最多m次
a{n,m} 匹配前一个字符最少n次,最多m次
1.2 sed命令:流编辑器
sed是操作、过滤和转换文本内容的强大工具,可以完美的配合正则表达式使用,常用功能可以对文件实现增删改查
语法格式:
sed [选项] [sed内置命令字符] [输入文件]
常用参数:
-e 允许多次编辑
-r 识别扩展正则
-n 取消默认输出,常与内置命令字符p连用
-i 直接修改文件内容,而不是输出到终端
常用内置命令字符:
p 表示打印匹配行的内容,常与选项-n一起使用
g 表示行内全面替换
s 替换指定字符
i 在当前行上面插入文本
a 在当前行下面追加文本
d 删除,删除选择的行