linux正则表达式

linux正则表达式

  一、正则表达式的分类(grep)

       1.普通正则表达式

       2.扩展正则表达式

  二、普通正则表达式

        ^  :以某字符开头

        $  :以某字符结尾

         .  :匹配除换行符之外的任意单个字符

         *  :匹配前导字符的任意字数

      【】:某组字符串的任意一个字符

     【^】:取反

  【a-z】:匹配小写字母

  【A-Z】:匹配大写字母

【a-zA-Z】:匹配字母

      【0-9】:匹配数字

             \     :取消转义

           () :分组

             \n    :代表第n个分组

  三、扩展正则

             {}      :匹配的次数

             {n}    :匹配n次

            {n,}  :至少匹配n次

          {n,m} :匹配n到m次

                +    :匹配至少有一个前导字符

                ?   :匹配一个或另个前导字符

                 |     :或

案例:

1 案例1:在/etc/passwd文件中,匹配以ftp开头的行
2         grep '^ftp' /etc/passwd
案例1
1 案例2:在/etc/passwd文件中,匹配以bash结尾的行
2         grep 'bash$' /etc/passwd
案例2
1 案例3:匹配本机中有哪些ip
2         ip a | grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}'
案例3
1 案例4:要求将/etc/fstab中的去掉包含 # 开头的行,且要求 # 后至少有一个空格
2         grep -vE '^#\ +' /etc/fstab
案例4
1 案例5:找出文件中至少有一个空格的行
2         grep -E '\ +' xxx
案例5
1 案例6:将 nginx.conf 文件中以#开头的行和空行,全部删除 
2         grep -vE '^\ *#|^$' /etc/nginx/nginx.conf
案例6

 

posted @ 2021-12-20 21:08  Roseblacko  阅读(144)  评论(0编辑  收藏  举报