zoukankan      html  css  js  c++  java
  • 正则表达式文本过滤

    grep文本过滤

     1.grep 默认是按照以行为基本单位进行匹配和显示的。

     2.grep默认匹配只要包含模式字符即可

        grep -w 是按单词匹配,和普通的匹配不一致

        单词的分隔符, 数字加字母加下划线都算做单词的一部分

    grep   -f   p.txt    /etc/passwd

    匹配显示结果的行号

     grep 并且关系和 或者关系

      1.并且        grep     root       /etc/passwd   |   grep shutdown

      2.或者        grep     -e  root  -e  shutdown     /etc/passwd       

        

    正则表达式

    1.字符匹配

         .  表示一个任意字符  .放在[]里面就表示.本身这个字符

    2.匹配次数

            某一个字符出现的次数

          *  表示*号前面的字符出现的次数是不确定的

    3.位置锚定

       行首   ^         不能匹配中间某段字符串的开始

       行尾   $        不能匹配中间某一段字符串的结尾

      单词词首      <root     root处于单词的最左侧 

      单词词尾       root>    root处于单词的最右侧

    4.分组

        1. echo wangwangwangggww | grep "(wang){3}"

        2.后向引用

          

    正则表达式和通配符的区别

     正则表达式匹配的是文件的内容或者标准输出的字符串,通配符匹配的是文件的名称.两者操作的对象不一致.

    匹配字符串问题

     shell执行命令的时候,正则表达式是以整个输出作为字符串内容,包括看不到的空格符号。

     有些命令结果会输出一个或者多个空格,有些命令不会输出空格.

      1.在表达式中()符号前面和{}括号前面都必须要加上() 和 {}.

         grep "^(.*):.*1$" /etc/passwd

      2.正则表达式默认从字符串的最前面开始查找,但是如果锚定的是行尾,那么正则会从尾部开始查找

        1.从尾部开始查找

       

       2.从头部开始查找

       

       3.分组实例

        

       

          第一分组匹配到的字符串是7,最后面的[0-9]*1 表示匹配到以7结尾而且7前面可以包含任意个数字的数字

        

     基本正则和扩展正则的区别

      1.基本正则语法  小括号和大括号前面需要加上符号做转义

           grep  -w   "[0-9]{2,3}"    /etc/passwd

      2.扩展正则       小括号和大括号前面不要加上转义字符

          grep -Ew      "[0-9]{2,3}"     /etc/passwd

          egrep -w      "[0-9]{2,3}"     /etc/passwd

       

      

      

        

  • 相关阅读:
    css flex布局实现后台页面
    html5 css iframe实现后台框架,仅用于学习案例
    nginx 多个网站配置
    nginx 负载 访问时 去掉端口
    nginx 负载
    解标准数独算法
    C++ execute linux cmd and retrieve the output
    C++ generate in Ubuntu
    shell操作典型案例--FTP操作
    PHP7 新写法
  • 原文地址:https://www.cnblogs.com/yxh168/p/8733630.html
Copyright © 2011-2022 走看看