Linux正则01

 

 

1. 正则符号分类

分类   命令
基础正则Basic RE  BRE ^ $  ^$ .  *   .*   [a-z]    [^abc] grep sed awk
扩展正则 Extend RE    ERE + | {} () ? egrep sed -r  awk

2. 正则VS通配符

分类 用途 支持的命令
正则(re) 三剑客,高级语言,进行过滤(匹配字符) 三剑客(grep sed awk find rename(ubuntu) expr)
通配符 pathname extension 或glob 匹配文件(文件名)*.txt  *.log linux下大部分命令都支持

3. 基础正则

  3.1   ^  以....开头的行

  3.2  $   以....结尾的行

       如grep 'm$' 文件名 查找不到以m结尾的行,可用cat -A 文件名 查看结尾是否有隐藏字符,如有空格,可用grep 'm $' 文件名查找

  3.3  ^$ 空行

       空行这一行中没有任何内容

       空格也是一个字符

       匹配出空行

      应用:排除文件中的空行    grep -v  '^$' 文件名

 3.4 .(点)表示任意一个字符

         注意:点不匹配空行

 3.5 \ 转义字符 :脱掉马甲,打回原形,去除原有特殊含义

         匹配中文件中以.点结尾的行   grep '\.$' 文件名

         转义字符序列:

                           \n 回车换行

                           \t tab键

   3.6  * 前一个字符连续出现了0次或0次以上

            连续出现0(0出现一次) grep '0*'  文件名

            刚开始*比较少单独用,熟练掌握正则后*

   3.7  .* 所有内容,任何内容,任意内容

            整体记忆:.*表示所有即可

            了解:.(点)任意一个字符+*前一个字符连续出现0次或0次以上

            eg1:  grep '^.*t' 文件名  从开始匹配到t字符结束,匹配开头到t直接所有字符

            正则特色:正则表达式的贪婪性,*表示所有或*联系出现的时候,会表现出尽可能的贪婪匹配

 

 

 

posted @ 2021-12-11 15:01  J_勇敢牛牛  阅读(55)  评论(0)    收藏  举报