首页 > 代码库 > 我的朗科运维第六课(1)

我的朗科运维第六课(1)

文本处理三剑客

    grep系:grep、egrep、fgrep,文本搜索工具,居于“PATTERN”对于给定的文本进行模糊搜索。

    sed:tream EDitor,流编辑器,行编辑器,文本编辑工具;

    awk:gawk--GNU awd,文本格式化工具,文本报告生成器,文本处理的编辑语言;

grep系:grep、egrep、fgrep

    grep:Global search REgular expression and Print out the line.

                利用增则表达式进行全局搜索并将匹配的行显示出来;

        格式:grep [OPTIONS] PATTERN [FILE...]

                PATTERN:过滤条件,是由正则表达式元字符以及没有特殊含义的文本字符组成。

                    正则表达式的元字符:会被正则表达式引擎解释为特殊含义;pcre--perl语言的正则表达式引擎;                                            其中正则表达式分两中:

                                                            一、基本的正则表达式:BRE;

                                                            二、扩展的正则表达式:ERE;

                                                            grep默认仅支持基本正则表达式;

                                                            egrep默认仅支持扩展正则表达式;

                                                            fgrep默认不开启正则表达式;

                    文本字符:只具备字符表面含义的那些字符;

        常用选项:

            -i,--ignore-case:忽略文本字符的大小写;

            -v,--invert-match:方向匹配;最终显示的结果是PATTERN不能匹配的行;

            -c,--count:计数,统计匹配PATTERN的所有行数;

            -o,--only-吗thing:关闭贪婪模式,仅显示PATTERN能够匹配的内容;

            -q,--quiet,--silent:安静模式,不输出任何匹配结果;

            --color[=WHEN],--colour[=WHEN]:将匹配PATTERN的内容以特殊颜色高亮显示;

            -E,--extended-regexp:扩展的正则表达式,grep -E相当于egrep;

            -F,--fixed-strings,--fixed-regexp:grep -F相当于fgrep

            -G,--basic-regexp:基本的正则表达式,egrep -G相当于grep

            -P,--prel-regecp:使用PCRE(Perl Regular Expression)引擎;

            -A NUM,--after-context=NUM:在显示匹配PATTERN的行的同时显示起后面的NUM行;

            -B NUM, --before-context=NUM:在显示匹配PATTERN的行的同时显示起前面的NUM行;

            -C NUM, -NUM, --context=NUM:在显示匹配PATTERN的行的同时显示起前后各NUM行;

        PATTERN:

            正则表达式元字符:

                基本的正则表达式元字符:

                GLOBBING-----简化版的正则表达式:[] ? * 

                字符匹配:

                    .:匹配任意单个字符

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

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

            下列所有的字符集都可以放置于[]之中用于匹配单个字符:

                [:lower:]、[:upper:]、[:alpha:]、[:digit:]、[:space:]、[:alnum:]、[:punct:]、[:blank:]

                [:xdigit:]:所有的十六进制数字;

                a-z:所有的小写字母

                A-Z:所有的大写字母

                0-9:标识所有的十进制数字

            次数匹配:该类字符之前的那个字符可以出现的次数;

                *:其前面的字符可以出现任意次(0次,1次或多次);

                \?:其前面的字符可有可无(0次或1次);

                \+:其前面的字符至少出现一次(1次或多次);

                \{m\}:其前面的字符必须出现m次;

                \{m,n\}:其前面的字符至少出现m次,至多出现n次;(m<n)

                \{,n\}:其前面的字符至少出现0次,至多出现n次;

                \{m,\}:其前面的字符至少出现m次,多多益善;

           在正则表达式中,表示任意长度任意字符的方式:.*

           位置锚定字符:

                行锚定:

                    行首锚定:^

                    行尾锚定:$

                字锚定:

                    字首锚定:\<或\b

                    字尾锚定:\>或\b

       注意: \b:旧版本中的锚定方法,建议不使用:

        对于正则表达式引擎来说,字是由非特殊字符组成的连续字符串;


我的朗科运维第六课(1)