• 正则表达式----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
  • 相关阅读:
    ppa 安装gnome3
    Ubuntu 升级VisualBox后无法启动 Kernel driver not installed (rc=-1908)
    ubuntu 安装 n卡 驱动
    apt-get 介绍。
    linux流量查看工具 iftop
    Ubuntu防火墙 UFW 设置
    Linux Shell快捷键(基本是通用的)
    gnome3 shell快捷键
    day2 -- 字符串常用方法、列表、字典
    day1 -- Python变量、注释、格式化输出字符串、input、if、while、for
  • 原文地址:https://www.cnblogs.com/mona524/p/6933113.html
Copyright © 2020-2023  润新知