• shell入门-grep2


    案例介绍

    搜索关键词带‘root’的行 并输出行号

    [root@wangshaojun ~]# cg -n 'root' 1.txt
    1:root:x:0:0:root:/root:/bin/bash
    11:operator:x:11:0:operator:/root:/sbin/nologin

    搜索不带关键词‘nologin’的行,输出行号

    [root@wangshaojun ~]# cg -vn 'nologin' 1.txt
    1:root:x:0:0:root:/root:/bin/bash
    6:sync:x:5:0:sync:/sbin:/bin/sync
    7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    8:halt:x:7:0:halt:/sbin:/sbin/halt
    26:wangshaojun:x:500:500::/home/wangshaojun:/bin/bash

    搜索出包含数字的行

    [root@wangshaojun ~]# cg '[0-9]' 1.txt
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    ....

    搜索包含个别字符的行 ‘cN’

    sync:x:5:0:sync:/sbin:/bin/sync
    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    nobody:x:99:99:Nobody:/:/sbin/nologin

    ....

    搜索包含字母的行

    [root@wangshaojun ~]# cg '[a-zA-Z]' 1.txt
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    ....

    搜索不包含字母的行

    [root@wangshaojun ~]# cg -v '[a-zA-Z]' 1.txt

    #$%%^&#@!!?????>>><<:"}{(特殊字符行)

                                         (空格行)
    112234556754576543   (数字行)

    匹配以字母开头的行

    [root@wangshaojun ~]# cg '^[a-z]' 1.txt
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin

    ..... (没有特殊字符行,空格行,数字行)

    匹配以数字开头的行

    [root@wangshaojun ~]# cg '^[0-9]' 1.txt
    112234556754576543

    匹配不以数字开头的行

    [root@wangshaojun ~]# cg -v '^[0-9]' 1.txt
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologi

                                                    (空格行)

    #$%%^&#@!!?????>>><<:"}{

    匹配不以数字开头的行

    [root@wangshaojun ~]# cg '^[^0-9]' 1.txt
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    nobody:x:99:99:Nobody:/:/sbin/nologin
    #$%%^&#@!!?????>>><<:"}{

    .....(没有空格行)

    搜索空行

    [root@wangshaojun ~]# cg '^$' 1.txt///// '^'是开始 '$'是结束 中间什么都没有就是空行

                                               (空行)

    ////////////////////////////////////////////////////////////////////////////////////////////////

    特殊符号 

    特殊符号‘.’  表示任意一个字符

    [root@wangshaojun ~]# cg 'r.o' 1.txt
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin

    vcsa:x:69:69:virtual console memory oriowner:/dev:/sbin/nologin
    saslauth:x:499:76:"Saslauthd user":/var/r_oempty/saslauth:/sbin/nologin
    postfix:x:89:89::/var/spr oool/postfix:/sbin/nologin
    sshd:x:74:74:Privilege-separ*orated SSH:/var/empty/sshd:/sbin/nologin
    rtkit:x:498:499:RealtimeKit: r.o/proc:/sbin/nologin

    特殊符号‘*’  表示数字0个或多个*号前面的字符和*后面的字符匹配

    [root@wangshaojun ~]# cg 'r.o' 1.txt
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    vcsa:x:69:69:virtual console memory oriowner:/dev:/sbin/nologin
    saslauth:x:499:76:"Saslauthd user":/var/r_oempty/sas

    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

    syrrrrrrrrronc:x:5:0:sync:/sbin:/bin/sync

    ....

    特殊字符‘.*’  .任意*任意个。表示任何个任意字符。匹配到r开头o结尾

    [root@wangshaojun ~]# cg 'r.*o' 1.txt
    root:x:0:0:root:/root:/bin/bash
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    syrrrrrrrrronc:x:5:0:sync:/sbin:/bin/sync
    halt:x:7:rro0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

    .....

    特殊字符‘?’ 表示数字0或数字1个?前面的字符

    [root@wangshaojun ~]# cg 'r?o' 1.txt
    root:x:0:0:root:/root:/bin/bash   //roo中ro匹配一次 o匹配一次
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

     .......

    cg 'r?o' 1.txt == cg -E 'r?o' 1.txt == egrep --color 'r?o' 1.txt

    /////////////////////////////////////////////////////////////////

  • 相关阅读:
    MVP架构模型的一些延伸笔记
    Google 新建议
    ComboBox控件“设置 DataSource 属性后无法修改项集合”的解决【转】
    2013年省市区/县数据SQL Server(SQL语句)
    MAC下搭建个人博客
    MAC MYSQ忘记密码重置方法
    Web设计中打开新页面或页面跳转的方法
    策划书模版
    网站书签
    Swift
  • 原文地址:https://www.cnblogs.com/wangshaojun/p/4975828.html
Copyright © 2020-2023  润新知