grep与正则表达式

grep 与正则表达式:
1.grep程序
             Linux下有文本处理三剑客--grep sed awk
             grep:文本行过滤器
             sed:文本行编辑器(流编辑器)
             awk:报告生成器(做文本输出格式化)
             grep
                  包括三个命令:grep egrep fgrep,它们是用来进行行模式(pattern)匹配
                  egrep = grep-E//使用扩展的正则表达式进行匹配
                  grep = fast grep//只是用文件通配符进行匹配
                  *grep默认使用正则表达式进行文本匹配*
             grep的用法:
                   grep[option]...PATTERN [filename]                       invert(反转)
             grep的常见选项--option
                   -E  支持使用扩展的正则表达式(ERE)(regexp正则表达式的简写)
                   -P  使用perl语言的正则表达式引擎进行搜索(每一种语言的正则表达式的引擎都不相同,甚至sed grep awk使用的regexp引擎也不相同)
                   -i    忽略大小

                   -v   进行反选

                   -o   仅仅输出匹配的内容(默认输出的是匹配到行)

                   --color=auto 语法着色

                   -n   显示行号

                   -w 匹配固定单词
PATTERN--正则表达式

                   作用:通过一些特殊字符,来表示一类字符内容,然后交给前面的内容来执行,如果使用特殊字符本身含义,就需要\进行转义;

                  1.字符匹配

                                    .任意一个字符?

                                    [ ]范围内的任意一个字符

                                    [^]范围外任意一个字符

                                    字符类:[:digit:][:alnum:][:alpha:][:lower:][:upper:][:space:    

                  2.次数匹配

                                    *匹配前面一个字符0次到无数次

                                    \?匹配前面的字符0次到1次

                                     + 匹配前面的字符1次到n次

                                     \{m\}匹配前面的字符m次

                                     \{m,n\}匹配前面的字符m到n次

                                     \{0,n\}匹配前面的字符0次到n次

                                      \{m,\}匹配前面的字符至少m次
                  3.位置锚定

                                    ^ 锚定行首

                                    $ 锚定行尾

                                    \b 锚定词首和锚定词尾

                                    \> 锚定词尾

                                    \<锚定词尾

                                                        <\root\>rooter
                  4.分组

                         abc* abccccc abc看成一个整体

                         \(\) 示例:\(abc\)* abcabcabc abcccc

                         **分组特性:默认情况下,Linux系统会为分组指定变量,变量表示形式\1\2\3\4\5......

                         示例:\(ab+\(xy\)*\) 其中\1=ab+\(xy\)*,\2=xy

练习:

 

posted @ 2019-08-14 16:36  GEJIAJIAHUI  阅读(133)  评论(0编辑  收藏  举报