zoukankan      html  css  js  c++  java
  • grep使用集合

    一、grep使用

    (一)、选项

    -a 不要忽略二进制数据。
    -A<显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。
    -b 在显示符合范本样式的那一行之外,并显示该行之前的内容。
    -c 计算符合范本样式的列数。
    -C<显示列数>或-<显示列数>  除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
    -d<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
    -e<范本样式> 指定字符串作为查找文件内容的范本样式。
    -E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
    -f<范本文件> 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
    -F 将范本样式视为固定字符串的列表。
    -G 将范本样式视为普通的表示法来使用。
    -h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
    -H 在显示符合范本样式的那一列之前,标示该列的文件名称。
    -i 忽略字符大小写的差别。
    -l 列出文件内容符合指定的范本样式的文件名称。
    -L 列出文件内容不符合指定的范本样式的文件名称。
    -n 在显示符合范本样式的那一列之前,标示出该列的编号。
    -q 不显示任何信息。
    -R/-r 此参数的效果和指定“-d recurse”参数相同。
    -s 不显示错误信息。
    -v 反转查找。
    -w 只显示全字符合的列。
    -x 只显示全列符合的列。
    -y 此参数效果跟“-i”相同。
    -o 只输出文件中匹配到的部分。
    
    

    (二)、元字符

    grep        //使用基本元字符集
    ^    $    .    *    [ ]    [^]    < >    ( )    { }     +     |
    egrep(或grep -E):                    //使用扩展基本元字符集
    ?        +        {    }        |        (    )
    //注:grep也可以使用扩展集中的元字符,仅需要对这些元字符前置一个反斜线
    w                            //所有字母与数字,称为字符[a-zA-Z0-9]    'l[a-zA-Z0-9]*ve'        'lw*ve'
    
    W                            //所有字母与数字之外的字符,称为非字符      'love[^a-zA-Z0-9]+'    'loveW+'
    
                                  //词边界            '<love>'            'love'

    (三)、命令格式

    grep [选项] PATTERN filename filename....
    
    #grep 'Tom' /etc/passwd
    #grep 'bash shell'  /etc/test
    
    //找到:            grep返回的退出状态为0
    //没找到:            grep返回的退出状态为1
    //找不到指定的文件:            grep返回的退出状态为2

    管道格式

      grep 程序的输入可以来自标准输入或者管道,而不仅仅是文件,例如:

    #grep 'tom'
    
    #ps aux | grep 'sshd'
    
    #ll | grep '^d'
    
    #grep 'alice' /etc/passwd /etc/shadow /etc/group
    
    

    二、示例

    grep -E 或 egrep
    
    # egrep 'NW' datafile
    
    # egrep 'NW' d*
    
    # egrep '4$' datafile
    
    # egrep 'TB Savege' datafile
    
    # egrep '5..' datafile
    
    # egrep '^[we]' datafile
    
    # egrep '[^0-9]' datafile
    
    # egrep '[A-Z][A-Z] [A-Z]' datafile
    
    # egrep 'ss* ' datafile        
    
    # egrep '[a-z]{9}' datafile
    
    # egrep '<north' datafile
    
    # egrep '<north>' datafile    
    
    # egrep '<[a-r].*n>' datafile
    
    # egrep '^nw*W' datafile    
    
    # egrep 'north' datafile
    
    # egrep 'NW|EA' datafile
    
    # egrep '3+' datafile
    
    # egrep '2.?[0-9]' datafile    
    
    # egrep '(no)+' datafile
    
    # egrep 'S(h|u)' datafile
    
    # egrep 'Sh|u' datafile

    三、实战

    # egrep 'ifcfg' /etc/*                    //文件
    # egrep -R 'ifcfg' /etc                   //目录
    
    # egrep 'root' /etc/passwd /etc/shadow /etc/hosts
    /etc/passwd:root:x:0:0:root:/root:/bin/bash
    /etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin
    /etc/shadow:root:$6$6vCMgBDL$g9KSR3cVWhzpqbwQs69haw/n4VFtVo2qYn8J0Gjy8wWBVmJjXfGS6DqVl/DNH.nH.xASCJexS4N2KVhIFWoMU.:17644:0:99999:7:::
    
    # egrep -l 'root' /etc/passwd /etc/shadow /etc/hosts
    /etc/passwd
    /etc/shadow
    
    # egrep -n 'root' /etc/passwd /etc/shadow /etc/hosts
    /etc/passwd:1:root:x:0:0:root:/root:/bin/bash
    /etc/passwd:10:operator:x:11:0:operator:/root:/sbin/nologin
    /etc/shadow:1:root:$6$6vCMgBDL$g9KSR3cVWhzpqbwQs69haw/n4VFtVo2qYn8J0Gjy8wWBVmJjXfGS6DqVl/DNH.nH.xASCJexS4N2KVhIFWoMU.:17644:0:99999:7:::
    
    # egrep '^IPADDR' /etc/sysconfig/network-scripts/ifcfg-br0 
    IPADDR="10.18.43.100"
    
    # egrep '^IPADDR' /etc/sysconfig/network-scripts/ifcfg-br0 |egrep -o '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'
    10.18.43.100
    
    # egrep '^IPADDR' /etc/sysconfig/network-scripts/ifcfg-br0 |egrep -o '([0-9]{1,3}.){3}[0-9]{1,3}'
    10.18.43.100
    
    
    # grep --help |grep '-R'
      -R, --dereference-recursive
    
    # grep --help |egrep -A5 '-R'
      -R, --dereference-recursive
                                likewise, but follow all symlinks
          --include=FILE_PATTERN
                                search only files that match FILE_PATTERN
          --exclude=FILE_PATTERN
                                skip files and directories matching FILE_PATTERN
    
    



  • 相关阅读:
    webdav srs相关
    How To Configure WebDAV Access with Apache on Ubuntu 14.04
    ubuntu 编译lighttpd
    srs编译及推流测试
    Compile pciutils (lspci, setpci) in Windows x86,在 Windows x86 平台下编译 pciutils (lspci, setpci)
    mingw MSYS2 区别
    Qt之美(三):隐式共享
    Qt之美(二):元对象
    Qt之美(一):d指针/p指针详解
    C++的栈空间和堆空间
  • 原文地址:https://www.cnblogs.com/sky-k/p/9419551.html
Copyright © 2011-2022 走看看