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

    一、什么是正则

      正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。或者说:正则就是用来描述一类事物的规则。

    在linux中,通配符是由shell解释的,而正则表达式则是由命令解释的,grep、sed、awk,他们三者均可解释正则

    二、grep

    参数

      grep用来进行过滤操作

        -n:显示行号

        -o:只显示匹配的内容

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

        -l:如果匹配成功,则只将文件名打印出来,失败则不打印,通常-rl一起用,grep -rl 'root' /etc

        -A:匹配成功后,将匹配行和其后n行一起打印出来

        -B:匹配成功后,将匹配行和其前n行一起打印出来

        -C:匹配成功后,将匹配行和其前后n行一起打印出来

        -c:匹配成功后,将匹配到的行数打印出来

        -E:等于egrep,扩展

        -i:忽略大小写

        -v:取反,不匹配

        -w:匹配单词

    正则介绍

      ^行首  如:‘^grep’匹配所有以grep开头的行

      $行尾  如:‘grep$’匹配所有以grep结尾的行

      .除了换行符意外的任意单个字符  如:‘gr.p’匹配gr后接一个任意字符,然后是p

      *前导字符的零个或多个  如:‘ab*c’匹配ac中间有零个或多个b的行。

      .*所有字符  如:‘a.*c’匹配ac中间任意字符及数量的字符

      ?前导字符零个或一个

      +前导字符一个或多个

      []字符组内的任一字符  

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

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

      [a-z]小写字母

      [A-Z]大写字母

      [a-Z]所有字母

      [0-9]数字

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

      >单词尾

      abc|dfg  abc或dfg

      a(bc|de)f   abcf或adef

      x{m}   x 出现m次

      x{m.}  x出现m次至多次(至少m次)

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

    示例

      目标文件/etc/passwd

      1.grep 'root' /etc/passwd  显示出所有含有root的行

      2.grep -C2 'bash' /etc/passwd  输出任何包含bash的所有行,还要输出紧接着这行的上下各两行的内容

      3.grep -c 'nologin' /etc/passwd  显示出有多少行含有nologin

      4.grep -n 'root' /etc/passwd  显示出那些行含有root,并将行号一块输出。

      5.新建用户

        abominable

        abominate

        anomie  

        atomize

       编写正则表达式,将他们匹配出来:egrep 'a.omi' /etc/passwd

      6.grep -rl 'root' /etc  显示出/etc目录下所有包含root的文件名

      7.过滤掉/etc/ssh/sshd_config内所有注释和所有空行

      grep -v '^#' /etc/ssh/sshd_config |grep -v '^ *$'

  • 相关阅读:
    zz如何防止拖延
    Matlab中统计矩阵中相同元素的个数
    深度学习(Deep Learning)算法简介
    深度学习(Deep Learning)综述
    端午节的说说
    .net 开发 配置文件的灵活使用
    2005
    那一天 That day
    女 孩 的 心 思
    Wind Flowerlove
  • 原文地址:https://www.cnblogs.com/78pikaqiu/p/6934984.html
Copyright © 2011-2022 走看看