zoukankan      html  css  js  c++  java
  • SHELL 脚本 02 GREP命令详解

    grep命令详解:过滤来自一个文件或标准输入匹配模式内容。

    除了 grep 外,还有 egrep。egrep 是 grep 的扩展,相当于 grep -E。

    Usage: grep [OPTION]... PATTERN [FILE]...

    选项描述
    -E,--extended-regexp 模式是扩展正则表达式(ERE)
    -i,--ignore-case 忽略大小写
    -n,--line-number 打印行号
    -o,--only-matching 只打印匹配的内容
    -c,--count 只打印每个文件匹配的行数
    -B,--before-context=NUM 打印匹配的前几行
    -A,--after-context=NUM 打印匹配的后几行
    -C,--context=NUM 打印匹配的前后几行
    --color[=WHEN] 匹配的字体颜色
    -v,--invert-match 打印不匹配的行
    [root@ken ~]# echo "this is ken THIS IS KEN" | grep -i 'ken'
    this is ken THIS IS KEN
    [root@ken ~]# echo "this is ken THIS IS KEN" | grep  'ken'
    this is ken THIS IS KEN
     
    
    2. -n,打印行号
    
    [root@ken ~]# grep -n 'root' /etc/passwd
    1:root:x:0:0:root:/root:/bin/bash
    10:operator:x:11:0:operator:/root:/sbin/nologin
     
    
     3. -o,只打印匹配的内容
    
    [root@ken ~]# echo "this is ken THIS IS KEN" | grep -o 'ken'
    ken
    [root@ken ~]# echo "this is ken THIS IS KEN" | grep  'ken'
    this is ken THIS IS KEN
     
    
    4. -c,打印文件匹配的行数
    
    [root@ken ~]# grep  -c 'root' /etc/passwd
    2
    [root@ken ~]# grep  'root' /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
     
    
    5. -B,打印匹配的前几行
    
    [root@ken ~]# grep -B 3 'root' /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    --
    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
    
    6.-A,打印匹配的后几行
    
    [root@ken ~]# grep -A 3 'root' /etc/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
    --
    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
    
    7.-C,打印匹配的前后几行
    
    [root@ken ~]# grep -C 3 'root' /etc/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
    --
    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
    
    
    8. --color,在centos7中已经默认为 grep --color,在centos6中需要加上--color才会显示颜色
    
    [root@ken ~]# alias grep 
    alias grep='grep --color=auto'
     
    9. -v, 打印不匹配的行
    
    [root@ken ~]# echo -e "hi
    this is ken
    ncie to meet you
    bye " | grep -v 'ken'
    hi
    ncie to meet you
    bye 
  • 相关阅读:
    第四章 高级查询(二)
    部分 语法Mysql
    MySQL高级查询
    BZOJ 3124 SDOI2013 直径
    BZOJ 3130 SDOI2013 费用流
    BZOJ 3993 SDOI2015 星际战争
    BZOJ 3997 TJOI2015 组合数学
    BZOJ 4003 JLOI2015 城池攻占
    BZOJ 3925 ZJOI2015 地震后的幻想乡
    codeforces #313 div1 E
  • 原文地址:https://www.cnblogs.com/mafy/p/13708124.html
Copyright © 2011-2022 走看看