码迷,mamicode.com
首页 > 其他好文 > 详细

grep及正则表达式

时间:2017-11-14 11:25:16      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:zl

查找的需要:grepegrepfgrep

    grep:根据模式搜索文本,并将符合模式的文本行显示出来

        使用基本正则表达式定义的模式来过滤文本的命令

    Pattern:模式,文本字符和正则表达式的元字符组合而成匹配条件

    # grep [OPTIONS] PATTERN [FILE...]

        -i:忽略大小写

        -v:反向查找,显示没有被模式匹配到的行

        -o:只显示被模式匹配到的字符串

        -E:使用扩展正则表达式---------------------grep -E = egrep

        -F:fast-----------------------------------grep -F = fgrep(fgrep不支持正则表达式)

        -A n:匹配所要匹配的那一行和其后的n行

        -B n:匹配所要匹配的那一行和其前的n行

        -C n:匹配所要匹配的那一行和其后以及其前的n行

    


正则表达式:REGular EXPression,REGEXP贪婪模式:尽可能长的匹配

    Basic REGEXP:基本正则表达式

        元字符:

            .:匹配任意单个字符

            []:匹配指定范围内的任意单个字符

            [^]:匹配指定范围外的任意单个字符

            字符集合:[[:space:]]等

        匹配次数(贪婪模式):

            *:匹配其前面的字符任意次(0/n)

            .*:任意长度的任意字符

            \?:匹配其前面的字符1次或0次(0/1)

            \+:匹配其前面的字符1次或多次(1/n)-------------扩展正则表达式

            \{m,n\}:匹配其前的字符至少m次,至多n次

        位置锚定:

            ^:锚定行首,此字符后面的任意内容必须出现在行首

            $:锚定行尾,此字符前面的任意内容必须出现在行尾

           ^$:空白行

        单词锚定:

            \b:其前或其后的任意字符必须作为单词的首部或尾部出现

            \w:匹配任何字类字符(字母、数字)

            \W:匹配任何非字类字符(各种标点、符号)

        分组:

            \( ..\):将括号内的字符看做一个整体

           后向引用:

                \1:引用第一个左括号以及与之对应的右括号所包含的所有内容(\n...

    Extendend REGEXP:扩展正则表达式(不需要转义符\

        字符匹配:.[][^]

        次数匹配:*?+{m,n}

        位置锚定:^$\b

        分组:()\1\n

        或者:|


sed(流编辑器)基本用法:

sed:Stream EDitor

    行编辑器(全屏编辑器)

sed:模式空间

    默认不编辑原文件,仅对模式空间中的数据做处理;而后,处理结束后,将模式空间打印至屏幕

    # sed "AddressCommand" file...

        -n:静默模式,不在默认显示模式空间中的内容

        -i:直接修改源文件

        -e SCRIPT -e SCRIPT:可以同时执行多个脚本

        -f /PATH/TO/SED_SCRIPT:/PATH/TO/SED_SCRIPT保存所要执行的脚本

            # sed -f /path/to/sed_script FILE

        -r:使用扩展正则表达式

      Address:

          Startline,Endline

          /RegExp/:/^root/

          /pattern1/,/pattern2/:第一次被模式1匹配到的行开始至第一次被模式2匹配到的行结束

          LineNumber:指定的行

          Startline,+N:从startline开始,向后的N行

      command:

          d:删除符合条件的行

          p:显示符合条件的行

          a \string:在指定的行后面追加新行,内容为string

              \n:换行

          i \string:在指定的行前面添加新行,内容为string

          r FILENAME:将Address指定的文件的内容/行添加至符合条件的行数之后,用于合并文件

          w FILENAME:将Address指定范围内的内容/行另存至指定的文件中

          s/pattern/string/:查找每行中pattern并替换为string,默认只替换每行中第一次被模式匹配到的字符串(s///也可写为:s###、s@@@等)

              加修饰符:

                g--全局替换    

                i--忽略字符大小写

                \(\)、\1、\2、...、\n

                &:同\1后向引用的作用一样


grep及正则表达式

标签:zl

原文地址:http://zjing1027.blog.51cto.com/13395854/1981440

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!