grep及正则表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了grep及正则表达式相关的知识,希望对你有一定的参考价值。

查找的需要: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###、[email protected]@@等)

              加修饰符:

                g--全局替换    

                i--忽略字符大小写

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

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


以上是关于grep及正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

grep及扩展正则表达式

grep及正则表达式

grep及正则表达式

关于 grep及正则表达式

grep命令及正则表达式

grep文本查看工具及正则表达式