SSH(Secure Shell Protocol)命令之 grep

grep是一个文本搜索工具,能够使用正则表达式搜索文本,并根据要求输出匹配的行数或者输出匹配的行,该命令的一般格式如下:

  grep [选项] pattern files

    *   常用【选项】有:

   -?  ?表示一个数字,意思是输出匹配行前后?行,-3表示输出前后3行

   -c  只输出匹配的行数

   -i   忽略大小写进行匹配

   -n  打印匹配行的行号

    *   pattern 是要匹配文本的正则表达式,具体正则语法可以参考其他相关资料,这里只列举几个。

      ^  行的开始 如:'^grep'匹配所有以grep开头的行。

   $   行的结束 如:'grep$'匹配所有以grep结尾的行。

   .   匹配非换行符的任意一个字符 如:'ab.z' 匹配abcz,也匹配abzz

   *  匹配零个或多个前导字符 如:'ab.*z'  匹配abz,也匹配abcccccczz

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

   [^] 匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。      

      .........

    * files 要搜索的文件列表,文件可以有一个或者多个,当然要搜索的目标也可以是其他命令的输出,可以使用管道进行连接

      grep -c 'abc' a.log b.log

    

   

【实例】

    grep用得比较多是用来进行统计,并与管道进行联合使用。

    *  查找包含abc 的行  ,并打印行号

         grep  -n 'abc'  a.log

     

       利用管道方式完成同样的工作

      cat a.log | grep -n 'abc'

   

      意思是将cat看到的内容输出作为grep命令的输入,并在这个输入中搜索abc字符串

    *   在所有log文件中搜索包含abc字符串的行

         grep -n 'abc'  *.log

猜你喜欢

转载自cher.iteye.com/blog/933390