• 正则表达式----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
  • 相关阅读:
    win10安装mongodb教程及其失败解决方案
    基于TypeScript的NodeJs框架:NestJs开发博客API (node.js+nest.js)
    Webpack性能改造之CDN
    44道JavaScript送命题
    electron-vue学习手册
    万字长文带你深度解锁Webpack(进阶篇)
    4W字长文带你深度解锁Webpack系列(上)
    devexpress GalleryControl 获得选中的item并删除
    c# 任意角度旋转图片
    .net core3.1连接GBase数据库的步骤
  • 原文地址:https://www.cnblogs.com/mona524/p/6933113.html
Copyright © 2020-2023  润新知