• grep 整理总结


    grep作用: 主要用于查询功能的字符串处理工具
    grep参数:
    -c:打印符合要求的行数
    -n:在输出符合要求的行同时连同行号一起输出
    -v:去反,输出不符合要求的行
    -A n:表示将每条符合要求的记录之后n行一同输出
    -B n:表示将每条符合要求的记录之前n行一同输出
    -C n:相当于A和B的组合,表示将每条符合要求的记录前后n行一同输出
    -r:会把目录下面所有的文件全部遍历
    -i:查看时不区分大小写
    -E: 匹配多个字符,相当于egrep
    --color=auto 关键字显示颜色

    1、用”-r“参数搜索目录下所有文件

    [root@ruizhong ~]# grep -nr "root" /etc/passwd     #搜索/etc/passwd目录下所有文件中带有"root"的行
    1:root:x:0:0:root:/root:/bin/bash
    11:operator:x:11:0:operator:/root:/sbin/nologin
    

    2、 用”-c“参数来统计符合条件结果的行数

    [root@ruizhong ~]# grep -c "root" /etc/passwd      #统计出/etc/passwd目录下所有文件中带有"root"的行
    2
    

    3、参数"-A"、“-B”、“-C”

    [root@ruizhong ~]# grep -n -A2 'root' /etc/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
    --
    11:operator:x:11:0:operator:/root:/sbin/nologin
    12-games:x:12:100:games:/usr/games:/sbin/nologin
    13-gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
    
    [root@ruizhong ~]# grep -n -B2 'root' /etc/passwd  #指定匹配行, 前两行文件输出
    1:root:x:0:0:root:/root:/bin/bash                  #第一行之前没有内容, 所以只有一行
    --
    9-mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10-uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    11:operator:x:11:0:operator:/root:/sbin/nologin
    
    [root@ruizhong ~]# grep -n -C2 'root' /etc/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
    --
    9-mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10-uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    11:operator:x:11:0:operator:/root:/sbin/nologin
    12-games:x:12:100:games:/usr/games:/sbin/nologin
    13-gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
    

    4、更多例子

    [root@test01 ~]# grep -n 'root' /etc/passwd                   #关键字,行号
    [root@test01 ~]# grep -n -v 'root' /etc/passwd                #关键字,行号,取反
    [root@test01 ~]# grep '[0-9]' /etc/passwd                     #包含数字的行
    [root@test01 ~]# grep -v '[0-9]' /etc/passwd                  #包含数字的行,取反
    [root@test01 ~]# grep -v '^#' /etc/passwd                     #“#”号开头,取反
    [root@test01 ~]# grep -v '^$' /etc/passwd | grep -v '^#'      #空行与#开头的行,取反
    [root@test01 ~]# grep '^[a-zA-Z]' /etc/passwd                 #以字母开头的行
    [root@test01 ~]# grep '^[^0-9]' /etc/passwd                   #首字母不是数字的行
    [root@test01 ~]# grep 'o{2,}' /etc/passwd                   #匹配o至少重复两次的所有行
    [root@test01 ~]# grep 'o{2,5}t'  /etc/passwd                #匹配o重复出现2到5此,并以t结尾的行
    

    本文转自:http://www.90root.com/index.php/archives/44.html
    更多grep: http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856896.html
    更多grep: http://www.cnblogs.com/end/archive/2012/02/21/2360965.html

  • 相关阅读:
    LeetCode 452. 用最少数量的箭引爆气球
    LeetCode 451. 根据字符出现频率排序
    LeetCode 464. 我能赢吗
    LeetCode 2. 两数相加
    @RendSection{"scripts",require:false}的作用
    js中变量含(参数、数组)作用域传递问题
    Web Api通过Route、RoutePrefix等特性设置路由
    SQLserver中存储图片
    RDLC的部署(无法找到Microsoft.ReportViewer.ProcessingObjectModel.dll文件)
    C# 发送Http协议 模拟 Post Get请求
  • 原文地址:https://www.cnblogs.com/migongci0412/p/5963044.html
Copyright © 2020-2023  润新知