正则表达式:
1、 什么是正则表达式?(作用和特殊字符一样)
正则表达式是为处理大量的字符串及文本而定义的一套规则和方法。
2、为什么要用正则表达式?
提高效率,快速获取到想要的内容
3、 在哪使用?
三剑客命令grep(egrep)、sed、awk(以行为单位处理)
4、怎样使用?
5、Linux三剑客的正则表达式的特点
a:为处理大量文本及字符串而定义的一套规则和方法
b:工作时以行为单位进行,即一次处理一行
c:通过正则表达式可以将复杂的处理任务化繁为简,提高操作Linux的效率
d:仅被三剑客(grep/egrep、sed、awk)命令支持,其他命令无法使用
6、易混淆事项
a:应用正则表达式的就是Linux三剑客,普通命令正常情况下无法使用正则表达式
b:正则表达式在Linux中是通过三剑客命令在文件(或数据流)中过滤内容的;通配符是大部分普通命令都支持的,它是用来查找文件或目录的
7、环境准备
1)、调整字符集(export LC_ALL=C)
2)、
8、 正则表达式的分类:
a:基本正则表达式(BRE,basic regular expression)——使用命令grep
b:扩展正则表达式(ERE,extended regular expression)——使用命令egrep/grep-E
Linux正则表达式
1、基本正则
1):^尖角号 以……开头 ^oldboy 以oldboy开头
2):$美元符 以……结尾 oldboy $ 以oldboy结尾
3):^$ 空行
4): . 匹配任意一个切只有一个字符,和通配符?一样
5):\ 让有意思的字符脱掉马甲 还原本义
6):* 重复前面字符0次或多次
7):.* 表示所有
8): ^.* 组合符,匹配以任意多个字符开头的内容
9):.*$ 以任意0个或多个字符结尾
10):[abc]匹配[ ]集合内的任意一个字符a或b或c,[abc]相当于[a-c]
11):[^abc]匹配不包含^后的任意字符a或b或c
2、扩展正则
1):+ 匹配前一个字符一次或一次以上
2):[:/]+ 匹配括号内:或/字符 一次或一次以上
3):? 匹配前一个字符0次或1次
4):| 或者 同时过滤多个字符串
5):a{n,m} 匹配前一个字符最少n次,最多m次
6):a{n,} 匹配前一个字符最少n次
7):a{n} 匹配前一个字符正好n次
8):a{,m} 匹配前一个字符最多m次
9):()分组过滤杯括起来的东西表示一个整体
10):\n 引用前面括号里的内容
3、特殊中括号
4、元字符表达式
1):\b 匹配单词边界(类似grep -w)*****
2):\d 匹配单个数字字符(需用grep -P)
sed命令
1、sed简称为流编辑器
2、sed是用来操作、过滤和转换文本的工具。
3、语法格式
sed [选项] [sed内置命令字符] [输入文件]
3、参数
-n 取消命令的默认输出
-i 直接修改文件内容,而不是输出到终端
4、内置命令字符说明
s 替换
g 全局 global
p 打印print
d 删除delete