zoukankan      html  css  js  c++  java
  • linux grep命令详解

    linux grep命令详解

    简介:

      grep( global search regular expression and print out the line : 全面搜索正则表达式并把行打印出来)是一种强大的linux文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

    命令格式:

      grep [option] pattern file 

      grep [-acinv] [--color=auto] '搜索的字符串' filename
      选项与参数:
        1. -a : 把binary文以text文件的方式搜索数据。
        2.-c : 计算找到‘搜寻字符串’的次数。
        3.-i : 忽略大小写放入不同,所以大小写视为相同。
        4.-n :顺便输出行号。
        5.-v : 反向选择,亦即显示出没有‘搜索字符串’内容的那一行。
        6.--color = auto : 可以将找到的关键字那部分加上颜色的显示出来。

      根据文件内容递归查找目录:

    1 grep ' findContent ' * #在当前目录搜索带有‘findContent’行的文件
    2 grep -r ' findContent'  #在当前目录及其子目录下搜索' findContent '行的文件。
    3 grep -l -r 'findContent' #在当前目录及其子目录搜索'findContent'行的文件,但是不显示匹配的行,只显示匹配的文件。

    grep展示搜索行的前后行信息

       grep -C n foo file 显示file文件里匹配foo字符串的那行及上下n行

       grep  n foo file 显示file文件里匹配foo字符串的那行及上下n行

       grep -B n foo file 显示foo及前5行

       grep -A n foo file 显示foo以及后5行

       查看mysql慢日志中ip地址为192.168.0.10发送过来的SQL语句的后面三行
       1.tail -50 /usr/local/mysql/data/sql-slow.log |grep -3 '192.168.0.10'  

       匹配php错误日志中某一个字段

      2,tail -100 /data/logs/php/php_error_5.3.log  | grep  "Memcache::get()";

        查看某一个文件第5行和第10行

         sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行

    grep与正则表达式的结合

      1.匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep

      例子: grep -n 't[ae]st' filename.txt  ---->  匹配tast和test,表示我们想要在filename.txt文件中搜索tast和test两个单词,并且输出行号。

      2.^ 表示锚定行的开始,如:'^grep'匹配所有以grep开头的行。

      3.$ 表示锚定行的结束 如:’grep$‘匹配所有以grep结尾的行。

      4. . 匹配一个非换行符的字符,如:'gr.p' 匹配gr后接一个任意字符,然后是p。

      5. * 匹配零个或多个先前字符,如:'g*rep' 匹配所有一个或者多个g字符后紧跟rep的行。

      6. .* 一起用代表任意字符

      7. [^]匹配一个不在指定范围内的字符,如: [^g]oo 搜索有oo的行,但不想要oo前面有g。

    使用实例:

      实例1:查找进程

      ps -ef | grep svn

      实例2:查找指定进程个数

      ps -ef | grep svn -c 或者 ps -ef | grep -c svn 

      实例3:从文件中读取关键字进行搜索

      cat test.txt | grep -f test2.txt

      实例5:从文件中查找关键词,并且对关键字加上颜色显示

      grep  'test' --color test.txt

      实例6:从多个文件中查找关键词

      grep 'test' test1.txt test2.txt

      实例7:找出以g开头的行内容

      cat test.txt | grep ^u

      实例8:输出非u开头的行内容

      cat test.txt | grep ^[^u]

      实例9:输出以hat结尾的行内容

      cat test.txt | grep hat$

      实例10:显示包含9或者nine字符的内容行

      cat test.txt | grep -E '9|nine'

    公司用法:

      grep '.*三八活动*.' --color /opt/web/dianshangwuxian_t_jzt/wf/logs/emcdsthirdservice.log

    原文:

    1.http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856896.html 
    2.http://www.cnblogs.com/peida/archive/2012/12/17/2821195.html
    3.http://www.cnblogs.com/wangkongming/p/3684905.html

     

  • 相关阅读:
    【转载】产品经理如何行之有效的提高执行力
    【转载】20个2013年最值得关注的网页设计趋势
    【转载】HTTP协议详解
    工作一年的心得与体会
    【转载】什么是SVG
    【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
    【转载】前台页面优化全攻略-系列博文
    flink的checkpoint
    HBase概述
    牛客题霸--跳台阶题解
  • 原文地址:https://www.cnblogs.com/boothsun/p/5247411.html
Copyright © 2011-2022 走看看