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
    
    



  • 相关阅读:
    gridview的应用(删除)
    Javascript无刷新TreeView
    利用GridView显示主细表并添加打开、关闭功能
    UpdatePanel 控件简介
    Asp.net中使用fckeditor在线编辑器配置
    C#实现水晶报表绑定数据并实现打印
    Asp.net 2.0 Treeview 动态填充,并实现无限级树
    SQL数据库建表前期优化
    C#发送Email邮件方法总结
    ASP.NET防SQL注入脚本程序
  • 原文地址:https://www.cnblogs.com/sky-k/p/9419551.html
Copyright © 2011-2022 走看看