Linux正则表达式与三剑客
企业让面试者答笔试题的目的?
1、筛选不合格的。
2、选合格的(笔试阶段表现出优秀)
3、给面试官第一次的好印象,先入为主。
营销体验前置(幼鹅效应)
一定不要错过这两个点,把面试官培养成幼鹅
a.投简历时候,b.面试邀约的时候
老男孩思想之如何答笔试题?
1、字要好,工整,给人感觉用心
2、尽量多答一些。3W1H,特别是问答题
3、一定要给出多种答案(不低于3种答案)
4、问答题能画图就不用文字
命令知识:程序性记忆,实际练习,不断的练习(实践)
一、正则表达式:
3W1H:
1、什么是正则表达式?
作用和特殊字符一样。(事先规定好一个字符代表什么)
正则表达式是为处理大量的字符串及文本而定义的一套规则和方法。
假设"@"代表“I am" , "!" 代表“oldboy” ,
则执行echo “@!”的结果就是输出”I am oldboy“
2、为什么用正则表达式?
a. 提高效率,快速获得想要的内容
3、在什么地方用?
a. 三剑客命令grep (egrep) ,sed, awk
以行为单位处理,其他普通命令无法使用
4、怎么用?
实践讲解。
易混淆的事项
1.和通配符区别
2.开发人员正则,一般是perl兼容正则表达式
3、Linux三剑客正则表达式*****
环境准备:
export LC_ALL=C 让正则表达是更准确
[root@lixin ~/test]# ls -lF /data |grep "/$"
drwxr-xr-x. 2 root root 6 Mar 20 00:22 oldboy/
分类:
1.BRE 基本正则表达式 简单正则表达式 grep
2ERE 扩展正则表达式 egrep grep -e
二、特殊语义中括号:
三、元字符表达式
四、Linux三剑客
sed [选项] [sed内置命令字符] [输入文件]
选项:
-n 取消默认sed的输出
-i 直接修改文件内容,而不是输出到终端
内置命令字符:
s 替换
g 全局 global
p 打印 print
d 删除 delete
显示2, 3行
[root@lixin ~/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.
[root@lixin ~/test]# sed -n '2,3p' oldgirl.txt
I like badminton ball ,billiard ball and chinese chess!
our site is http://www.oldboyedu.com
删除‘oldboy’行
[root@lixin ~/test]# sed '/oldboy/d' oldgirl.txt
I like badminton ball ,billiard ball and chinese chess!
my qq num is 49000448.
替换:
sed 's#把谁#替换成谁#g' oldgirl.txt 显示
sed -i 's#把谁#替换成谁#g' oldgirl.txt 修改文件
sed -e 's#把谁#替换成谁#g' -e 's#把谁#替换成谁#g' oldgirl.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.
问题1:输出oldboy.txt的第2-3行内容※。
问题2:过滤出含有oldboy字符串的行※。
问题3:删除含有oldboy字符串的行※。
问题4:将文件中的oldboy字符串全部替换为oldgirl※。
问题5:将文件中的oldboy字符串全部替换为oldgirl,同时将QQ号码49000448改为31333741。