Day14
作者:方维超
归档:课上笔记
时间:2019/3/19
昨天的考试题课下再进行反复练习。
50%纪律几率要答笔试题:
企业让面试者答笔试题的目的?
1、筛选不合格的。
2、选合格的(鄙视阶段表现出优秀)。
3、给面试官第一次的好印象,就会有一种先入为主的感觉。营销体验前置(幼鹅效应)。
老男孩思想之如何答笔试题?
每天睡前大脑里进行思维导图,回忆当天所学内容。
第十一章 linux正则表达式与三剑客知识应用实践
1****、什么是正则表达式?
作用和特殊字符一样。
正则表达式是为处理大量的字符串及文本而定的一套规则和方法。
举例说明:
开发者:
假设"@"代表“I am”,"!"代表“oldboy”,
执行echo "@!"的结果就是输出“I am oldboy”
发明语言:
上了火星,发明火星语。
! 我喜欢你
@ 滚
2****、为什么用正则表达式?
提高效率,快速获得想要的内容。
3****、****用在哪?
适用于三剑客命令: grep(egrep)、sed、awk
以行为单位处理。
4、怎样用?
实践讲解。
易混淆事项
A. 和通配符区别。
B. 开发人员正则,一般是Perl兼容正则表达式。
C. Linux系统三剑客正则表达式******
环境准备:C7里不需要配置了
调整字符集,让正则表达式表达更正确:
[root@oldboy~]# export LC_ALL=C
用于模拟测试的数据: I am oldboy teacher! I like badminton ball ,billiard ball and chinese chess! not 4900000448. ? 匹配前一个字符0次或1次 [root@oldboy~/test]# grep -E "0?" oldboy.txt 扩展正则——过滤多个字符串 [root@oldboy~/test]# egrep "oldboy|like|000" oldboy.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. a{n,m}** 匹配前一个字符最少n次,最多m次 [root@oldboy~/test]# egrep "0{5,}" oldboy.txt [root@oldboy~/test]# egrep "0{,5}" oldboy.txt [root@oldboy~/test]# egrep -o "0{,3}" oldboy.txt [root@oldboy~/test]# egrep -o "(00)\1" oldboy.txt [root@oldboy~/test]# egrep -o "(0)(0)\1\2" oldboy.txt [root@oldboy~/test]# egrep -o "(0)\1\1\1" oldboy.txt [root@oldboy~/test]# egrep "(0)\1(4)\2" oldboy.txt [root@oldboy~/test]# egrep -o "(0)\1(4)\2" oldboy.txt 5、正则表达式的特点: 分类: 1、基本正则表达式,BRE:适用于grep 2、扩展正则表达式,ERE:适用于egrep 特殊预定义中括号表达式: [root@oldboyedu ~/test]# egrep "[0-9]" oldboy.txt 元字符表达式: \b 匹配单词边界,类似egrep -w [root@oldboy~/test]# egrep "\boldboy\b" oldboy.txt I am oldboy teacher! \d 匹配单个数字字符,需要使用grep -P参数才能识别 [root@oldboy~/test]# grep -P "\d" oldboy.txt my qq num is 49000448. not 4900000448. Linux****三剑客: awk sed grep sed****是操作、过滤和转换文本强大的工具。 sed****的内置命令字符说明 s****替换 g****全局 p****打印 print d****删除 delete 环境: [root@oldboyedu ~/test]# cat oldgirl.txt 问题1:输出oldboy.txt的第2-3行内容※。 [root@oldboy~/test]# sed -n '2,3'p oldgirl.txt I like badminton ball ,billiard ball and chinese chess! our site is http://www.oldgirledu.com 问题2:过滤出含有oldboy字符串的行※。 [root@oldboy~/test]# sed -n /oldboy/p oldgirl.txt I am oldboy teacher! our site is http://www.oldboyedu.com [root@oldboy~/test]# grep "oldboy" oldgirl.txt (过滤的内容标红显示) I am oldboy teacher! our site is http://www.oldboyedu.com 问题3:删除含有oldboy字符串的行※。 [root@oldboy~/test]# sed /oldboy/d oldgirl.txt I like badminton ball ,billiard ball and chinese chess! my qq num is 49000448. 问题4:将文件中的oldboy字符串全部替换为oldgirl※。 [root@oldboy~/test]# sed 's#oldboy#oldgirl#g' oldgirl.txt I am oldgirl teacher! I like badminton ball ,billiard ball and chinese chess! our site is http://www.oldgirledu.com my qq num is 49000448. vim oldgirl.txt :%s/oldboy/oldgirl/g 问题5:将文件中的oldboy字符串全部替换为oldgirl,同时将QQ号码49000448改为31333741。 [root@oldboy~/test]# sed -e 's#oldboy#oldgirl#g' -e 's#49000448#31333741#g' oldgirl.txt I am oldgirl teacher! I like badminton ball ,billiard ball and chinese chess! our site is http://www.oldgirledu.com my qq num is 31333741.
[root@oldboy~]# mkdir ~/test -p
[root@oldboy~]# cat >~/test/oldboy.txt<
I teach linux.
our site is http://www.oldboyedu.com
my qq num is 49000448.
my god ,i am not oldbey,but OLDBOY!
EOF
I am oldboy teacher!
I teach linux.
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!
a{n,} 匹配前一个字符最少n次
a{n} 匹配前一个字符正好n次
a{,m} 匹配前一个字符最多m次
not 4900000448.
I am oldboy teacher!
I teach linux.
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!
000
000
00
0000
0000
0000
my qq num is 49000448.
not 4900000448.
0044
0044
my qq num is 49000448.
not 4900000448.
[root@oldboyedu ~/test]#
[root@oldboyedu ~/test]# egrep "[[:digit:]]" oldboy.txt
my qq num is 49000448.
not 4900000448.
[root@oldboyedu ~/test]# egrep "[[:lower:]]" oldboy.txt
I am oldboy teacher!
I teach linux.
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!
[root@oldboyedu ~/test]# egrep "[[:upper:]]" oldboy.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my god ,i am not oldbey,but OLDBOY!
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.