Day14
作者:翟玉龙
归档:课堂笔记
2019/03/19
快捷键:
Ctrl + 1 标题1
Ctrl + 2 标题2
Ctrl + 3 标题3
Ctrl + 4 实例
Ctrl + 5 程序代码
Ctrl + 6 正文
格式说明:
蓝色字体:注释
黄色背景:重要
绿色背景:注意
老男孩教育教学核心思想6重:重目标、重思路、重方法、重实践、重习惯、重总结
学无止境,老男孩教育成就你人生的起点!
联系方式:
网站运维QQ交流群:
Linux 385168604架构师390642196
Python 29215534大数据421358633
官方网站:
http://www.oldboyedu.com
目录
学无止境,老男孩教育成就你人生的起点!... 1
第1章 正则表达式... 1
1.1 概念... 1
1.2 特点... 1
1.2.1 正则表达式分类... 1
1.3 预定义中特殊中括号... 3
1.4 元字符表达式... 4
第2章 三剑客 之 sed. 4
[if !supportLists]第1章 [endif]正则表达式
[if !supportLists]1.1[endif] 概念
1.什么是正则表达式
作用和特殊字符一样
它是为了处理大量的字符串及文本定义的一套规则和方法
假设”@”代表”I am”,“!”代表“oldboy”
则执行echo“@!”输出结果就是I am oldboy
2.为什么用提高效率
3.在哪用。它适用于三剑客命令grep(egrep)sed awk,,不适合普通命令
4.怎样用。实践
[if !supportLists]1.2 [endif]特点
三剑客的特点
[if !supportLists]1. [endif]为处理大量文本和字符串而定义的一套规则和方法
[if !supportLists]2. [endif]其工作时以行为单位进行,即一次处理一行
[if !supportLists]3. [endif]通过正则表达式可以将复杂的处理任务化繁为简,提高操作Linux的效率
[if !supportLists]4. [endif]仅被三剑客命令支持,其他命令无法使用
易混淆的事项
[if !supportLists]1. [endif]和通配符的区别
[if !supportLists]2. [endif]和开发的正则是不一样的,开发一般是perl兼容正则表达式。JAVA,php等
[if !supportLists]3. [endif]Linux三剑客正则表达式************
调整字符集:
export LC_ALL=C
[if !supportLists]1.2.1 [endif]正则表达式分类
[if !supportLists]1. [endif]BRE基本正则表达式类似于grep
[if !supportLists]2. [endif]ERE扩展正则表达式类似于egrep
[if !supportLists]1.3[endif]课堂问题
?0和0?区别
第一个代表自身是点,代表任意一个字符
第二个则是匹配?前的一个字符,两个含义不同。
问题2
e*s*和s?s?
e*标识 空e ee
eeeeeeeeeeeeeeee
s*表示空s s s s s ss s s s s s sss s
e*s*表示 空 es e s ess ees
e?s?表示 空 e s es
e?表示空 e
s? 表示空s
e+ 表示e e e eee ee e e e ee
e*表示空 e ee eee
e?表示空e
[if !vml]
[endif]
[if !vml]
[endif]
[if !supportLists]1.4 [endif]预定义中特殊中括号
[if !vml]
[endif]
[if !supportLists]1.5 [endif]元字符表达式
[if !vml]
[endif]
[if !supportLists]第2章 [endif]三剑客之 sed
Linux三剑客
awk sed grep
sed:
sed ‘/oldboy/d’ oldgirl.txt 不修改原文件知识显示的时候删除该内容
环境:
[root@oldboyedu ~/test]# cat oldgirl.txt
I am oldboy teacher!
I like badminton ball ,billiard ball and chinese chess!
our site is[if !vml]
[endif]http://www.oldboyedu.com
my qq num is 49000448.
问题1:输出oldboy.txt的第2-3行内容※。
1,sed -n '2,3p' oldgirl -n取消默认输出 ,p打印
head -3 oldgirl |tail -2问题2:过滤出含有oldboy字符串的行※。
2,sed -n '/oldboy/p' oldgirl问题3:删除含有oldboy字符串的行※。
3,sed '/oldboy/d' oldgirl
问题4:将文件中的oldboy字符串全部替换为oldgirl※。
4,sed 's/oldboy/oldgirl/g' oldgirl 替换问题5:将文件中的oldboy字符串全部替换为oldgirl,同时将QQ号码49000448改为31333741。
5,sed -e 's/oldboy/oldgirl/g' oldgirl -e 's/49000448/31333741/g' oldgirl
-e 再处理