zoukankan      html  css  js  c++  java
  • 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.位置锚定

                                        ^ 锚定行首

                                        $ 锚定行尾

                                         锚定词首和锚定词尾

                                        > 锚定词尾

                                        <锚定词尾

                                                            < oot>rooter
                      4.分组

                             abc* abccccc abc看成一个整体

                             () 示例:(abc)* abcabcabc abcccc

                             **分组特性:默认情况下,Linux系统会为分组指定变量,变量表示形式12345......

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

    练习:

  • 相关阅读:
    leetcode 110. 平衡二叉树(判断是否为平衡二叉树)
    论文阅读:Elastic Scaling of Stateful Network Functions
    论文阅读:Stateless Network Functions: Breaking the Tight Coupling of State and Processing
    论文阅读:FlexGate: High-performance Heterogeneous Gateway in Data Centers
    论文阅读:Andromeda: Performance, Isolation, and Velocity at Scale in Cloud Network Virtualization (全文翻译用于资料整理和做PPT版本,之后会修改删除)
    论文阅读:Flow-level State Transition as a New Switch Primitive for SDN
    算法设计与分析 2.5 Joyvan的难题
    算法设计与分析 2.1 杰哥和序列 (求逆序数算法)
    PISCES: A Programmable, Protocol-Independent Software Switch
    算法设计与分析 1.3 杰哥和数字
  • 原文地址:https://www.cnblogs.com/jklp-1234/p/11350464.html
Copyright © 2011-2022 走看看