zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    六、Linux计划任务及压缩归档
    四、用户管理
    三、vim编辑器详解
    八、RAID磁盘阵列及CentOS7系统启动流程
    五、权限管理
    二、Linux常用命令
    七、Linux磁盘管理及LVM讲解
    一、Linux常用命令
    JS继承的实现方式 原型 原型链 prototype和_proto_的区别
    js引用类型(Object、Array)
  • 原文地址:https://www.cnblogs.com/wangshaojun/p/4975828.html
Copyright © 2011-2022 走看看