• 第十二章 Linux三剑客之老三—grep


    一、Linux grep 命令用于查找文件里符合条件的字符串。

    grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。

    若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据.


    二、grep      #过滤 给过滤出来的内容加上颜色 按照行进行处理的


    [root@jindada ~]# alias
    alias cp='cp -i'
    alias egrep='egrep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias grep='grep --color=auto'
    alias l.='ls -d .* --color=auto'
    alias ll='ls -l --color=auto'
    alias ls='ls --color=auto'
    alias mv='mv -i'
    alias rm='rm -i'

    三、常用选项:

    -n       #显示出过滤出来的所在文件的行号

    -v        #排除,取反

    -c        #统计过滤出来的内容的总行数

    -i        #过滤的时候忽略大小写

    -o        #只显示你要过滤的内容

    -w        #精确匹配 只过滤你要过滤的单词,而不是包含这个单词的字符串

    -r        #递归过滤 针对目录进行操作

    -A        #显示出你要过滤的内容及向下多少行的内容

    -B        #显示出你要过滤的内容及向上多少行的内容

    -C       #显示出你要过滤的内容向上向下各多少行

    ^        #以什么开头

    $        #以什么为结尾

    |        # 或者 扩展正则

    -E       #支持扩展正则 ==== egrep

    .        #任意一个字符 排除换行符

    *        #前面的字符出现0次或者0次以上

    .*       #所有

    四、实例
    [root@jindada ~]# grep 'root' passwd
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin


    [root@jindada ~]# grep -n 'root' passwd
    1:root:x:0:0:root:/root:/bin/bash
    10:operator:x:11:0:operator:/root:/sbin/nologin


    [root@jindada ~]# grep -v 'root' passwd
    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
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    nobody:x:99:99:Nobody:/:/sbin/nologin
    systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    dbus:x:81:81:System message bus:/:/sbin/nologin
    polkitd:x:999:998:User for polkitd:/:/sbin/nologin
    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    postfix:x:89:89::/var/spool/postfix:/sbin/nologin


    [root@jindada ~]# grep 'root' passwd
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    [root@jindada ~]# grep -c 'root' passwd
    2


    [root@jindada ~]# echo "ROOT" >> passwd
    [root@jindada ~]# grep "root" passwd
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    [root@jindada ~]# grep -i "root" passwd
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    ROOT


    [root@jindada ~]# grep -o 'root' passwd
    root
    root
    root
    root


    [root@jindada ~]# echo "roottttt" >>passwd
    [root@jindada ~]# grep 'root' passwd
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    roottttt
    [root@jindada ~]# grep -w 'root' passwd
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin


    [root@jindada ~]# ifconfig eth0
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 10.0.0.100 netmask 255.255.255.0 broadcast 10.0.0.255
    inet6 fe80::3310:9d15:9ee4:43e8 prefixlen 64 scopeid 0x20<link>
    ether 00:0c:29:eb:ea:8d txqueuelen 1000 (Ethernet)
    RX packets 3778 bytes 648285 (633.0 KiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 2329 bytes 260396 (254.2 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    [root@jindada ~]# ifconfig eth0 | grep inet
    inet 10.0.0.100 netmask 255.255.255.0 broadcast 10.0.0.255
    inet6 fe80::3310:9d15:9ee4:43e8 prefixlen 64 scopeid 0x20<link>
    [root@jindada ~]# ifconfig eth0 | grep -w inet
    inet 10.0.0.100 netmask 255.255.255.0 broadcast 10.0.0.255
    [root@jindada ~]#

    #针对一个目录进行操作

    [root@jindada ~]# grep -r 'root' ./
    ./passwd:root:x:0:0:root:/root:/bin/bash
    ./passwd:operator:x:11:0:operator:/root:/sbin/nologin
    ./passwd:roottttt
    ./test.txt:root:x:0:0:root:/root:/bin/bash
    ./data/test.txt:root
    ./test/test.txt:root
    ./backup/test.txt:root


    [root@jindada ~]# grep -R 'root' ./
    ./passwd:root:x:0:0:root:/root:/bin/bash
    ./passwd:operator:x:11:0:operator:/root:/sbin/nologin
    ./passwd:roottttt
    ./test.txt:root:x:0:0:root:/root:/bin/bash
    ./data/test.txt:root
    ./test/test.txt:root
    ./backup/test.txt:root


    [root@jindada ~]# grep -A 4 'sync' passwd
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin


    [root@jindada ~]# grep -B 4 'sync' passwd
    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
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync


    [root@jindada ~]# grep -C 4 'sync' passwd
    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
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin


    [root@jindada ~]# grep 'root' passwd
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    roottttt
    [root@jindada ~]# grep '^root' passwd
    root:x:0:0:root:/root:/bin/bash
    roottttt
    [root@jindada ~]# grep 't$' passwd
    halt:x:7:0:halt:/sbin:/sbin/halt
    roottttt
    [root@jindada ~]# grep 'adm|mail' passwd
    [root@jindada ~]# grep -E 'adm|mail' passwd
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    [root@jindada ~]# egrep 'adm|mail' passwd
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin


    #取出文件中的第5行到第15行

    [root@jindada ~]# head -15 passwd
    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
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    nobody:x:99:99:Nobody:/:/sbin/nologin
    systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    dbus:x:81:81:System message bus:/:/sbin/nologin
    [root@jindada ~]# head -15 passwd | tail -11
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    nobody:x:99:99:Nobody:/:/sbin/nologin
    systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    dbus:x:81:81:System message bus:/:/sbin/nologin


    [root@jindada ~]# grep 'r*' passwd
    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
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    nobody:x:99:99:Nobody:/:/sbin/nologin
    systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    dbus:x:81:81:System message bus:/:/sbin/nologin
    polkitd:x:999:998:User for polkitd:/:/sbin/nologin
    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    ROOT
    roottttt

     

    [root@jindada ~]# grep -n '.*' passwd
    1:root:x:0:0:root:/root:/bin/bash
    2:bin:x:1:1:bin:/bin:/sbin/nologin
    3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
    4:adm:x:3:4:adm:/var/adm:/sbin/nologin
    5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    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
    9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10:operator:x:11:0:operator:/root:/sbin/nologin
    11:games:x:12:100:games:/usr/games:/sbin/nologin
    12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    13:nobody:x:99:99:Nobody:/:/sbin/nologin
    14:systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    15:dbus:x:81:81:System message bus:/:/sbin/nologin
    16:polkitd:x:999:998:User for polkitd:/:/sbin/nologin
    17:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    18:postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    19:ROOT
    20:roottttt
    [root@jindada ~]#
    [root@jindada ~]# grep -n '.*' passwd | grep '^5'
    5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    [root@jindada ~]# grep -n '.*' passwd | grep -w '^5'
    5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    [root@jindada ~]# grep -n '.*' passwd | grep -wA 10 '^5'
    5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    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
    9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10:operator:x:11:0:operator:/root:/sbin/nologin
    11:games:x:12:100:games:/usr/games:/sbin/nologin
    12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    13:nobody:x:99:99:Nobody:/:/sbin/nologin
    14:systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    15:dbus:x:81:81:System message bus:/:/sbin/nologin
    [root@jindada ~]#


    [root@jindada ~]# grep -n '.*' passwd | grep -Ew '^8|^10'
    8:halt:x:7:0:halt:/sbin:/sbin/halt
    10:operator:x:11:0:operator:/root:/sbin/nologin

     

  • 相关阅读:
    JAVA-初步认识-第十二章-多线程创建方式一继承
    JAVA-初步认识-第十二章-主线程运行示例
    JAVA-初步认识-第十二章-JVM中的多线程分析
    JAVA-初步认识-第十二章-面向对象(Jar包)
    JAVA-初步认识-第十二章-面向对象(导入import)
    ecstore-kvcache里表结构
    ecstore-app接口
    ecstore与淘宝sdk的autoload加载顺序问题
    正则匹配<{$vcode}>变量
    电子面单纸打印时固定高度18cm,到底是多少px
  • 原文地址:https://www.cnblogs.com/jhno1/p/13295669.html
Copyright © 2020-2023  润新知