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

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

    grep [参数]  匹配条件  路径

     参数

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

    -l  :如果匹配成功,则只将文件名打印出来,失败则不打印,通常-rl一起用,grep -rl 'root' /etc 
    -A  :如果匹配成功,则将匹配行及其后n行一起打印出来
    -B  :如果匹配成功,则将匹配行及其前n行一起打印出来
    -C  :如果匹配成功,则将匹配行及其前后n行一起打印出来
    --color
    -c  :如果匹配成功,则将匹配到的行数打印出来
    -E  :等于egrep,扩展
    -i  :忽略大小写

    -v  :取反,不匹配
    -w:匹配单词

    规则:

    [root@localhost mona]# cat b.txt 
    abc 
    abbbbc
    abbbbbbbbcddddd
    abbbbbbccccdddd 
    a1sdfjc
    r34i495vhd
    achdkm
    nwihcdkdnd
    wnhcdcp
    abbbcid
    abccccjjcn
    ndkjcn
    kJsdnc d
    abbbbcdjcnd
    aBdjnkdk
    aBCJDEJDK
    
    company
    my company is ...
    companies is a organization

    ^ 行首

    [root@localhost mona]# grep ^a b.txt
    abc 
    abbbbc
    abbbbbbbbcddddd
    abbbbbbccccdddd 
    a1sdfjc
    achdkm
    abbbcid
    abccccjjcn
    abbbbcdjcnd
    aBdjnkdk
    aBCJDEJDK
    [root@localhost mona]# grep -n ^a b.txt   (显示行数)
    1:abc 
    2:abbbbc
    3:abbbbbbbbcddddd
    4:abbbbbbccccdddd 
    5:a1sdfjc
    7:achdkm
    10:abbbcid
    11:abccccjjcn
    14:abbbbcdjcnd
    15:aBdjnkdk
    16:aBCJDEJDK

    $ 行尾

    [root@localhost mona]# grep d$ b.txt
    abbbbbbbbcddddd
    r34i495vhd
    nwihcdkdnd
    abbbcid
    kJsdnc d
    abbbbcdjcnd

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

    * 前导字符的零个或多个

    [root@localhost mona]# grep 'ab*' b.txt 
    abc 
    abbbbc
    abbbbbbbbcddddd
    abbbbbbccccdddd 
    a1sdfjc
    achdkm
    abbbcid
    abccccjjcn
    abbbbcdjcnd
    aBdjnkdk
    aBCJDEJDK
    company
    my company is ...
    companies is a organization

    .* 所有字符

    [root@localhost mona]# grep '^c.*' b.txt 
    company
    companies is a organization

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

    [root@localhost mona]# grep '^a[^b]' b.txt 
    a1sdfjc
    achdkm
    aBdjnkdk
    aBCJDEJDK

    ^[^] 非字符组内的字符开头的行
    [a-z] 小写字母
    [A-Z] 大写字母
    [a-Z] 小写和大写字母
    [0-9] 数字

    [root@localhost mona]# grep '^a[0-9]' b.txt 
    a1sdfjc

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

    [root@localhost mona]# egrep 'ab{6}' b.txt 
    abbbbbbbbcddddd
    abbbbbbccccdddd 
    [root@localhost mona]# egrep 'compan(y|ies)' b.txt 
    company
    my company is ...
    companies is a organization
  • 相关阅读:
    table拖动列宽
    解决 wm_concat函数 长度不够问题
    「Luogu」[JSOI2007]字符加密 解题报告
    Markdown数学符号
    「P5004」专心OI
    「CF242E」XOR on Segment 解题报告
    「CF86D」Powerful array 解题报告
    「USACO08JAN」电话线Telephone Lines 解题报告
    「Luogu P2015」二叉苹果树 解题报告
    「Luogu P3866」[TJOI2009]战争游戏 解题报告
  • 原文地址:https://www.cnblogs.com/mona524/p/6933113.html
Copyright © 2011-2022 走看看