zoukankan      html  css  js  c++  java
  • grep命令

    grep
    1.1   grep 查找文本内容

    grep命令的一般形式为:

    grep [命令选项]... 用于匹配的表达式 [文件]...

     

    [options]主要参数:

    -c:只输出匹配行的计数。                              ps -ef|grep -c svn
    -i:不区分大 小写(只适用于单字符)。
    -h:查询多文件时不显示文件名。
    -l:查询多文件时只输出包含匹配字符的文件名。
    -n:显示匹配行及 行号。
    -s:不显示不存在或无匹配文本的错误信息。
    -v:显示不包含匹配文本的所有行

    pattern正则表达式主要参数:
    : 忽略正则表达式中特殊字符的原有含义。
    ^:匹配正则表达式的开始行。
    $: 匹配正则表达式的结束行。
    <:从匹配正则表达 式的行开始。
    >:到匹配正则表达式的行结束。
    [ ]:单个字符,如[A]即A符合要求 。
    [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
    。:所有的单个字符。
    * :有字符,长度可以为0。


    [root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename
    选项与参数:
    -a :将 binary 文件以 text 文件的方式搜寻数据
    -c :计算找到 '搜寻字符串' 的次数
    -i :忽略大小写的不同,所以大小写视为相同
    -n :顺便输出行号
    -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
    --color=auto :可以将找到的关键词部分加上颜色的显示

    实例:

    将/etc/passwd,有出现 root 的行取出来

    # grep root /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    或
    # cat /etc/passwd | grep root 
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    
    root 的行取出来,同时显示这些行在/etc/passwd的行号
    # grep -n root /etc/passwd
    1:root:x:0:0:root:/root:/bin/bash
    30:operator:x:11:0:operator:/root:/sbin/nologin
    
    

    从多个文件中查找关键词

               grep 'root' test.txt test2.txt

    关键字所在行的前两行与后三行一起显示

         grep -n -A3 -B2 root /etc/passwd
    

    颜色标注搜索关键词

         grep -n --color=auto'root' /etc/passwd
    
    显示包含ed或者at字符的内容行
    grep -E  "ed|at"

     

     

    在关键字的显示方面,grep 可以使用 --color=auto 来将关键字部分使用颜色显示。 这可是个很不错的功能啊!但是如果每次使用 grep 都得要自行加上 --color=auto 又显的很麻烦~ 用 alias 就得来处理一下! 在 ~/.bashrc 内加上这行: alias grep='grep --color=auto' 再以 source ~/.bashrc 来立即生效 这样每次运行 grep 他都会自动帮你加上颜色显示啦

      1.2 grep 正则 grep -n 't[ae]st' 123.txt #查找包含tast 和 test 的行 grep -n '[^g]oo' 123.txt #查找oo前不是g字符串 所在的行 grep -n '[^a-z]oo' 123.txt #查找oo前不是“小写字母”字符串 所在的行 grep -n '[0-9]' 123.txt #查找 包含数字0到9 的行 ^ 符号,在字符类符号(括号[])之内与之外是不同的! 在 [] 内代表『反向选择』 在 [] 之外则代表定位在行首的意义!

    grep'^the' 123.txt #查找 the开头 的行 grep ^u 123.txt  #找出已u开头的行内容  或者 cat 123.txt |grep ^u     grep ^[^u] 123.txt #输出非u开头的行内容 或者 cat 123.txt |grep ^[^u]  或 grep -v ^u 123.txt

     grep hat$ 123.txt                   #找出已hat结尾的行         grep -v hat$ test.txt               # 输出不是hat结尾的行内容                 grep '.$' #找出以 . 结尾的行 (.有特殊含义 要用转义字符 ) grep '^$' #找出 空白行(只有行首和行尾

    重复匹配: 任意一个字节 .     重复字节 * 这两个符号在正则表达式的意义如下:

    . (小数点):代表『一定有一个任意字节』的意思;
    * (星号):代表『重复前一个字符, 0 到无穷多次』的意思,为组合形态
    grep -n 'g..d'找出 g??d 的字串
    grep -n ' ooo*'                找出ooo、oooo、oooooo…… 等的字符串所在
    grep -n 'g.*g'                   找出g开头 g结结尾的字符串所在行(中间无所谓)
    grep -n 'go{2,5}g'         找出两个g中间包含 2到5个o的字符串所在行
    
    

     

    1.3 grep 查找内容 搜索文件 根据文件内容递归查找目录

    # grep ‘ener’ *     #在当前目录搜索带'ener'行的文件  显示关键字所在行
    
    # grep -r ‘ener’ *  #在当前目录及其子目录下搜索'ener'行的文件  显示关键字所在行
    # grep -l -r ‘energywise’ *     #在当前目录及其子目录下搜索'energywise'行的文件,
                                      但是不显示匹配的行,只显示匹配的文件
     #    grep abc *.txt                                当前目录下所有txt文件中 带有abc的行
          这几个命令很使用,是查找文件的利器。
    
    
    
  • 相关阅读:
    [转]给C++初学者的50个忠告
    [转]代理模式——代理模式的核心思想
    [转]单例模式——C++实现自动释放单例类的实例
    [转]代理模式——何时使用代理模式
    观察者模式——生动的气象信息订阅服务图示
    [转]单例模式——Java中互斥访问单一实例
    [转]C++ const变量使用技巧总结
    [转]用C++设计一个不能被继承的类
    ExtJs2.0学习系列(14)Ext.TreePanel之第三式(可增删改的树)
    ExtJs2.0学习系列(7)Ext.FormPanel之第四式(其他组件示例篇)
  • 原文地址:https://www.cnblogs.com/centos2017/p/7896763.html
Copyright © 2011-2022 走看看