2019-03-19课堂笔记

第1章 Linux正则表达式与三剑客知识应用实践

1.1 正则表达式介绍

1.1.1 什么是正则表达式?

正则表达式就是为处理大量的字符串及文本而定义的一套规则与方法。

1.1.2 Linux三剑客正则表达式特点:

1、 为处理大量文本及字符串而定义的一套规则与方法。
2、 其工作时以行为单位进行,即一次处理一行。
3、 通过正则表达式可以将复杂的处理任务化繁为简,提高操作Linux的效率。
4、 仅被三剑客(grep/egrep、sed、awk)命令支持,其他命令无法使用。

1.2 正则表达式的分类

正则表达式分为基本正则表达式(BRE)和扩展正则表达式(ERE)两类。

1.2.1 基本正则表达式(BRE)集合

2019-03-19课堂笔记_第1张图片
image.png

1.2.2 扩展正则表达式(ERE)集合

2019-03-19课堂笔记_第2张图片
image.png

1.3 预定义特殊中括号表达式

2019-03-19课堂笔记_第3张图片
image.png

1.4 元字符表达式

image.png

1.5 sed:流编辑器(Linux三剑客之一)

Sed是操作、过滤和转换文本内容的强大工具。
常用功能有对文件实现快速增删改查(增加、删除、修改、查询),
其中查询的功能中最常用的2大功能是过滤(过滤指定字符串)和取行(取出指定行)。

1.5.1 命令语法:

image.png

1.5.2 参数

2019-03-19课堂笔记_第4张图片
image.png

1.5.3 sed内置命令字符

2019-03-19课堂笔记_第5张图片
image.png

1.5.4 sed命令实践

环境准备:创建一个文本文件“oldboy.txt”,并输入以下内容。
[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.
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
问题1:输出oldboy.txt的第2-3行内容※。
答:sed -n '2,3p' oldboy.txt
问题2:过滤出含有oldboy字符串的行※。
答:sed -n '/oldboy/p' oldboy.txt
问题3:删除含有oldboy字符串的行※。
答:sed '/oldboy/d' oldboy.txt
问题4:将文件中的oldboy字符串全部替换为oldgirl※。
答:sed 's#oldboy#oldgirl#g' oldboy.txt
问题5:将文件中的oldboy字符串全部替换为oldgirl,同时将QQ号码49000448改为31333741。
答:sed -e 's#oldboy#oldgirl#g' -e 's#49000448#31333741#g' oldboy.txt

你可能感兴趣的:(2019-03-19课堂笔记)