美文网首页
day14 课后笔记

day14 课后笔记

作者: 藏鋒1013 | 来源:发表于2019-03-22 16:16 被阅读0次

    什么是正则表达式?

    作用:和特殊字符一样。

    就是为了处理大量的字符串及文本而定义的一套规则和方法。

    开发者

    假设"@"代表"I am","!"代表"oldboy",

    则执行echo"@!"的结果就是输出"I am oldboy"。

    2、提高效率,快速获取想要的内容。

    3、三剑客命令grep(egrep)、sed、swk.

    其工作是以行为单位,即一次处理一行。

    4、实践讲解

    易混肴事项:

    1、和通配符区别。

    2、开发人员正则。一般是Perl兼容正则表达式。

    3、Linux系统三剑客正则表达式*****。

    正则表达式分类:

    基本正则grep(BRE):

    ^尖角号以……开头,^oldboy 以oldboy开头

    $ 美元符 oldboy$ 以oldboy结尾

    ^$ 空行

    . 匹配任意一个且只有任意一个字符,和通配符?一样

    \ 让有意义的字符脱掉马甲 还原本义

    * 重复前面字符0次或多次

    .* 表示所有内容

    ^.* 组合符 匹配任意以0个或多个字符开头的内容

    .*$ 组合符以任意0个或多个字符结尾

    [abc] 匹配[]集合内的任意一个字符a或b或c ;[abc]也可以写成[a-c]

    [^abc] 匹配不包括^后面的一个字符a或b或c 

    扩展正则egrep(ERE):

    + 匹配一个字符一次或多次

    [:/]+ 匹配括号内的:或/字符一次或一次以上

    ? 匹配前一个字符0次或一次

    | 或者同时过滤多个字符串

    () 分组过滤被括起来的东西,表示一个整体

    \n 引用()小括号前面的内容 例如:(aa)\1,匹配aaaa

    a{n,m} 匹配前一个字符最少n次,最多m次

    a{n,} 匹配前一个字符最少n次

    a{n} 匹配前一个字符正好n次

    a{,m} 匹配前一个字符最多m次

    特殊中括号:

    [:digit:] 匹配任意一个数字字符,相当于[0-9]

    [:lower:] 匹配小写字母,相当于[a-z]

    [:upper:] 匹配大写字母,相当于[A-Z]

    元字符:

    \b 匹配单词边界 类似grep -w

    \d 匹配单个数字字符 

    Linux三剑客:

    awk  sed  grep:

    sed:

    Sed是操作、过滤和转换文本内容的强大工具。

    常用功能有对文件实现快速增删改查(增加、删除、修改、查询),

    其中查询的功能中最常用的2大功能是过滤(过滤指定字符串)和取行(取出指定行)。

    sed [选项]  [sed内置命令字符]  [文件]

    选项:

    -n 取消默认sed的输出,常与sed内置命令的p连用※

    -i 直接修改文件内容,而不是输出到终端。

    如果不使用-i选项sed只是修改在内存中的数据,并不会影响磁盘上的文件※

    sed的内置命令字符说明

    s 替换

    g 全局global

    p 打印print

    d 删除delete

    练习:

    环境:

    [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字符串的行※。

    grep oldboy oldgirl.txt

    问题3:删除含有oldboy字符串的行※。

    sed '/oldboy/d' oldgirl.txt

    问题4:将文件中的oldboy字符串全部替换为oldgirl※。

    sed 's#oldboy#oldgirl#g' oldgirl.txt

    问题5:将文件中的oldboy字符串全部替换为oldgirl,同时将QQ号码49000448改为31333741。

    sed -e 's#oldboy#oldgirl#g' -e 's#49000448#31333741#g' oldgril.txt

    相关文章

      网友评论

          本文标题:day14 课后笔记

          本文链接:https://www.haomeiwen.com/subject/paugmqtx.html