正则表达式与三剑客
目录
一.正则表达式 1
1、定义 1
2.作用 1
3、适用于三剑客命令 grep(egrep),sed,awk 1
5.环境准备: 1
6.分类: 1
1、BRE grep 1
2、ERE egrep 1
第一个括号第二个括号 2
二.Linux三剑客 2
1.sed定义 2
2.sed [选项] [sed内置命令字符] [文件] 2
3.sed的内置命令字符说明 2
4.例题. 2
一.正则表达式
1、定义
正则表达式是为处理大量的字符串及文本而定义的一套规则和方法。
2.作用
作用和特殊字符一样。
提高效率,快速获取到想要的内容。
3、适用于三剑客命令 grep(egrep),sed,awk
以行为单位处理。
4易混淆事项
(1)和通配符区别。
(2)开发人员正则,一般是Perl兼容正则表达式。
(3)Linux系统三剑客正则表达式
5.环境准备:
export LC_ALL=C
6.分类:
1、BRE grep
2、ERE egrep
a{n,m} 匹配前一个字符最少n次,最多m次
a{n,} 匹配前一个字符最少n次
a{n} 匹配前一个字符正好n次
a{,m} 匹配前一个字符最多m次
(0)===\1
(0)(0) \1 \2
第一个括号第二个括号
egrep -o "(e)(s)\1\2" oldboy.txt ===== egrep -o "eses" oldboy.txt
二.Linux三剑客
awk sed grep
1.sed定义
Sed是操作、过滤和转换文本内容的强大工具。
常用功能有对文件实现快速增删改查(增加、删除、修改、查询),
其中查询的功能中最常用的2大功能是过滤(过滤指定字符串)和取行(取出指定行
)。
2.sed [选项] [sed内置命令字符] [文件]
选项:
-n 取消默认sed的输出,常与sed内置命令的p连用※
-i 直接修改文件内容,而不是输出到终端。
如果不使用-i选项sed只是修改在内存中的数据,并不会影响磁盘上的文件※
3.sed的内置命令字符说明
s替换
g全局global
p打印print
d删除delete
4.例题.
环境
[root@oldboyedu ~/test]# cat oldgirl.txt
I am oldboy teacher!
I like badminton ball ,billiard ball and chinese chess!
our site is http://www.oldboyedu.com
my qq num is 49000448.
问题1:输出oldboy.txt的第2-3行内容※。
sed -n '2,3p' oldgirl.txt
问题2:过滤出含有oldboy字符串的行※。
sed -n '/oldboy/p' oldgirl.txt
问题3:删除含有oldboy字符串的行※。
sed '/oldboy/d' oldgirl.txt
sed /oldboy/d oldgirl.txt
问题4:将文件中的oldboy字符串全部替换为oldgirl※。
vim替换:
:%s#oldboy#oldgirl#g
sed 's#想替换啥#用啥替换#g' oldgirl.txt
sed 's#oldboy#oldgirl#g' oldgirl.txt
修改文件:
sed -i 's#oldboy#oldgirl#g' oldgirl.txt
问题5:将文件中的oldboy字符串全部替换为oldgirl,同时将QQ号码49000448改为
31333741。
sed -e 's#oldboy#oldgirl#g' -e 's#49000448#31333741#g' oldgirl.txt I