zoukankan      html  css  js  c++  java
  • Shell篇:正则表达式

    一,什么是正则?

           1,正则就是用一些具有特殊含义的符号组合到一起来描述字符或字符串的方法。

       2在linux中,通配符是由shell解释的,而正则表达式则是由命令解释的,下面我们就为大家介绍三种文本处理工具/命令:grep、sed、awk,它们三者均可以解释正则。

      二、grep

    1,grep -n 显示行号;

    2、grep -o  :只显示匹配的内容;

    3、grep -q  :静默模式,没有任何输出,得用$?来判断执行成功没有,即有没有过滤到想要的内容;

    4、grep -l  :如果匹配成功,则只将文件名打印出来,失败则不打印

    5、grep -A  :如果匹配成功,则将匹配行及其后n行一起打印出来

    6 、grep -B  :如果匹配成功,则将匹配行及其前n行一起打印出来

    7、grep -C  :如果匹配成功,则将匹配行及其前后n行一起打印出来

    8、grep -c  :如果匹配成功,则将匹配到的行数打印出来

    9、grep -E  :等于egrep,扩展

    10、grep -i  :忽略大小写

    11、grep -v  :取反,不匹配

    12,、grep -w:匹配单词

     三、grep种类

    grep
    fgrep
    pgrep
    egrep

    正则介绍

    ^ 行首

    $ 行尾

    . 除了换行符以外的任意单个字符

    * 前导字符的零个或多个

    .* 所有字符

    [] 字符组内的任一字符

    [^] 对字符组内的每个字符取反(不匹配字符组内的每个字符)  

    ^[^] 非字符组内的字符开头的行

    [a-z] 小写字母

    [A-Z] 大写字母

    [a-Z] 小写和大写字母

    [0-9] 数字

    < 单词头 单词一般以空格或特殊字符做分隔,连续的字符串被当做单词

    > 单词尾

    扩展正则 sed  加 -r 参数 或转义

    grep 加 -E 或 egrep 或转义

    AWK  直接支持 但不包含

    {n,m} 可以使用--posix支持

    [root@MiWiFi-R3-srv ~]#  awk '/ro{1,3}/{print}' /etc/passwd

    [root@MiWiFi-R3-srv ~]#  awk --posix '/ro{1,3}/{print}' /etc/passwd
      sed -n '/roo?/p' /etc/passwd    sed -rn '/roo?/p' /etc/passwd  

    ? 前导字符零个或一个

    + 前导字符一个或多个

    abc|def abc或def   

    a(bc|de)f abcf 或 adef  

    x{m}  

    x出现m次 x{m,} 

    x出现m次至多次(至少m次)

    x{m,n} x出现m次至n次

  • 相关阅读:
    js 跳转链接的几种方式
    js 指定分隔符连接数组元素join()
    Ajax async属性
    非负数正则表达式
    firefox因 HTTP 严格传输安全(HSTS)机制无法打开网页
    查看linux系统某宏的定义(另类)
    ctags高级用法
    ctags简明用法
    关于数组和指针的一道例题的解读
    让gcc和gdb支持intel格式的汇编
  • 原文地址:https://www.cnblogs.com/fengwu007/p/6600238.html
Copyright © 2011-2022 走看看