四剑客grep

作者: 天生顽皮 | 来源:发表于2021-07-04 15:49 被阅读0次

    1.四剑客-grep

    案例01 过滤出 /etc/passwd中包含 oldboy或root的行
    [root@m01 ~]# egrep 'oldboy|root' /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    oldboy:x:1000:1000:zhuzhu[oldboy(oldboy)]:/home/oldboy:/bin/bash
    
    案例02 过滤显示行号
    [root@m01 ~]# egrep -n 'oldboy|root' /etc/passwd
    1:root:x:0:0:root:/root:/bin/bash
    10:operator:x:11:0:operator:/root:/sbin/nologin
    21:oldboy:x:1000:1000:zhuzhu[oldboy(oldboy)]:/home/oldboy:/bin/bash
    
    案例03 排除/etc/ssh/sshd_config中的空行或#行
    egrep -v '^$|#' /etc/ssh/sshd_config
    
    案例04 匹配出文件中所有的单词
    egrep '[a-z]+' /etc/passwd
    egrep -o  '[a-z]+' /etc/passwd
    
    案例05 精确的匹配 oldboy 不匹配oldboylidao oldboy666 666oldboy
    [root@m01 /server/files]# cat name.txt 
    oldboy
    oldboylidao
    oldboy666
    oldboyedu
    [root@m01 /server/files]# egrep 'oldboy' name.txt 
    oldboy
    oldboylidao
    oldboy666
    oldboyedu
    [root@m01 /server/files]# egrep -w 'oldboy' name.txt     ※※※※※
    oldboy
    [root@m01 /server/files]# egrep '\boldboy\b' name.txt 
    oldboy
    [root@m01 /server/files]# egrep '\<oldboy\>' name.txt 
    oldboy
    
    案例06 递归过滤 网站被入侵,找出哪个文件被插入了病毒代码 vir.com
    [root@m01 ~]# find /etc/ -type f |xargs grep -l oldboy   --color 
    /etc/fstab
    /etc/group
    /etc/gshadow
    /etc/hosts
    /etc/group-
    /etc/gshadow-
    /etc/passwd
    /etc/passwd-
    /etc/shadow-
    /etc/shadow
    /etc/lvm/archive/centos_oldboy-muban_00000-1606901839.vg
    /etc/lvm/backup/centos_oldboy-muban
    /etc/default/grub
    /etc/sudoers
    /etc/aliases.db
    /etc/openvpn/check.sh
    /etc/openvpn/openvpnfile
    /etc/ansible/hosts
    

    介意

    ###find+grep方式 可以指定以...结尾的 更加精确      
    find /etc -type f -name "*.conf" |xargs grep   'oldboy'
    ###grep -Rl   '内容'   简单匹配,无法精确以...结尾的文件  
    grep -Rl  'oldboy' /etc 
    #-R 递归
    #-l 只显示文件名
    
    案例07 匹配内容及上下文
    egrep  -C 5  'server_name' /etc/nginx/nginx.conf.default 
    -A -B
    
    案例08 不区分大小写过滤
    [root@m01 /server/files]# egrep -i 'OLDBOY' /etc/passwd
    oldboy:x:1000:1000:zhuzhu[oldboy(oldboy)]:/home/oldboy:/bin/bash
    
    案例09 grep命令限制匹配的行数
    [root@m01 /server/files]# grep 'oldboy' name.txt
    oldboy oldboy
    oldboylidao
    oldboy666
    oldboy1921
    
    案例10 过滤的时候 不显示文件名 只显示文件内容
    [root@m01 /server/files]# grep 'oldboy' name.txt   oldboy.txt 
    name.txt:oldboy oldboy
    name.txt:oldboylidao
    name.txt:oldboy666
    name.txt:oldboy1921
    oldboy.txt:I am oldboy teacher!
    oldboy.txt:my blog is http://oldboy.blog.51cto.com 
    oldboy.txt:our size is http://blog.oldboyedu.com 
    [root@m01 /server/files]# grep -h 'oldboy' name.txt   oldboy.txt 
    oldboy oldboy
    oldboylidao
    oldboy666
    oldboy1921
    I am oldboy teacher!
    my blog is http://oldboy.blog.51cto.com 
    our size is http://blog.oldboyedu.com 
    
    案例11 统计次数(行数)
    [root@m01 /server/files]# ps -ef |grep crond  
    root        982      1  0 01:41 ?        00:00:00 /usr/sbin/crond -n
    root       3661   3525  0 08:56 pts/0    00:00:00 grep --color=auto crond
    [root@m01 /server/files]# ps -ef |grep crond |grep -v grep 
    root        982      1  0 01:41 ?        00:00:00 /usr/sbin/crond -n
    [root@m01 /server/files]# ps -ef |grep crond |grep -v grep |wc -l 
    1
    [root@m01 /server/files]# ps -ef |grep -c [c]rond
    1
    [root@m01 /server/files]# ps -ef |grep -c '[c]rond'
    1
    
    案例12 使用perl正则表达式
    [root@m01 /server/files]# grep -P   '\d+' oldboy.txt 
    my blog is http://oldboy.blog.51cto.com 
    my qq is 49000448
    not 4900000448.
    ____aaaaolidao996
    [root@m01 /server/files]# grep -Po   '\d+' oldboy.txt 
    51
    49000448
    4900000448
    996
    

    相关文章

      网友评论

        本文标题:四剑客grep

        本文链接:https://www.haomeiwen.com/subject/yfamultx.html