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

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

  • 相关阅读:
    hadoop再次集群搭建(3)-如何选择相应的hadoop版本
    48. Rotate Image
    352. Data Stream as Disjoint Interval
    163. Missing Ranges
    228. Summary Ranges
    147. Insertion Sort List
    324. Wiggle Sort II
    215. Kth Largest Element in an Array
    快速排序
    280. Wiggle Sort
  • 原文地址:https://www.cnblogs.com/wangshaojun/p/4975828.html
Copyright © 2011-2022 走看看