1.什么是正则表达式?
1.1正则表达式作用和特殊字符一样,是为处理大量的字符串及文本而定义的一套规则和方法;假设"@"代表“I am”,"!"代表“oldboy”,则执行echo "@!"的结果就是输出“I am oldboy”。
1.2使用正则表达式可以提高效率,快速获取到想要的内容。
1.3正则表达式适用于三剑客命令 grep(egrep),sed,awk ; 以行为单位处理。
1.4使用中易混淆事项:
a、要明确知道正则表达式和通配符区别。
b、开发人员正则,一般是Perl兼容正则表达式。
c、Linux系统三剑客正则表达式。(*****)
2.环境准备:
a、

b、

3.正则表达式分类:
a、grep,BRE 基本正则表达式
b、egrep,ERE扩展正则表达式
4.基本正则的正确使用
4.1 ^尖角号 以……开头,^oldboy,以oldboy开头

4.2 $ 美元符,以……结尾, oldboy$ 以oldboy结尾

4.3 ^$ 空行

4.4 . ?匹配任意一个且只有一个字符,和通配符一样

4.5 \ 让有意义的字符,脱掉马甲,还原本义

4.6 * 重复前面字符0次或多次

4.7 .* 表示所有内容

4.8 ^.* 组合符,匹配以任意多个字符开头的内容

4.9 .*$ 以任意0个或多个字符结尾

4.10 [abc] 匹配[]集合内的任意一个字符a或b或c;[abc]也可以写成[a-c]

4.11 [^abc] 匹配不包含^后的任意字符a或b或c,表示取反

5.扩展正则的正确使用
5.1 + 匹配前一个字符一次或多次以上

5.2 [:/]+ 匹配括号内的,匹配:或/一次或多次

5.3 ? 匹配前一个字符0次或1次

5.4 | 或者同时过滤多个字符串

5.5 () 分组过滤被括起来的东西

5.6 \n 引用前面括号里的内容

6.元字符表达式:
6.1 \b 匹配单词边界,类似grep -w

6.2 \d 匹配单个数字字符,需要用grep -P

7.sed:流编辑器
7.1Sed是操作、过滤和转换文本内容的强大工具,常用功能有对文件实现快速增删改查,其中查询的功能中最常用的2大功能是过滤。
7.2sed [选项] [sed内置命令字符] [文件]
选项:
-n 取消默认sed的输出,常与sed内置命令的p连用。※
-i 直接修改文件内容,而不是输出到终端。(如果不使用-i选项sed只是修改在内存中的数据,并不会影响磁盘上的文件※)
7.3sed的内置命令字符说明
s 替换;g 全局global

p 打印print

d 删除delete

-e 连续替换

网友评论