shell脚本-grep和正则表达式

怎甘沉沦 提交于 2021-02-13 09:25:26

1、grep程序
    1)命令:grep egrep fgrep,用来进行 行模式(pattern手动写)匹配的
       egrep = grep -E     //使用正则表达式进行匹配    
       fgrep = fast grep  //只使用文件通配符进行匹配
       *grep默认使用正则表达式进行文本匹配
    2)用法:
       grep[option]...PATTERN[filename]
    3)常见选项(option):
       -E 支持使用扩展的正则表达式(regexp)
       -P 使用Perl语言的正则表达式引擎进行搜索(每种语言的正则表达式引擎都不相同,甚至grep、sed、awk使用的regexp的引擎也不相同)
       -c 统计计数
       *-i 忽略大小写
       *-v 进行反选
       *-o 仅仅输出匹配的内容(默认输出是匹配到的行)
       --color=auto 语法zhuose
       -n 显示行号
       -w 匹配固定单词
2、PATTERN -- 正则表达式
  作用:通过一些特殊字符,来表示一类字符内容,然后交给前面的命令来执行;如果使用特殊字符本身含义,需要使用\来进行转义
    文件通配符:
       *:任意长度任意字符
       ?:任意一个字符
    正则表达式:
      1)字符匹配
          .任意一个字符
          | 或
          [] 范围内任意一个字符
          [^] 范围外任意一个字符
          字符类:[:digit:][:alnum:][:alpha][:space:][:punct:]
      2)次数匹配
         \* 匹配前面的一个字符0次到n次
         \?匹配前面的一个字符0次到1次
         \+ 匹配前面的一个字符1次到n次
         \{m\}匹配前面的一个字符m次
         \{m,n\}匹配前面的一个字符m到n次
             \{0,n\}匹配前面的字符0次到n次
         \{m\}匹配前面一个字符至少m次
       3)位置锚定
          ^ 锚定行首
          $ 锚定行尾
          \b 锚定词首和锚定词尾
          \> 锚定词尾
              \< 锚定词首  \<root\>
        4)分组
           \(\) 示例:\(abc\)* 把abc看成一个整体
          *分组特性:默认情况下,Linux系统会为分组指定变量,变量的表示形式\1\2\3..

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!