linux grep命令详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.忽略大小写放入不同,所以大小写视为相同。
    4.-n :顺便输出行号。
    5.-v : 反向选择,亦即显示出没有‘搜索字符串’内容的那一行。
    6.--color = auto : 可以将找到的关键字那部分加上颜色的显示出来。

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

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

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开头的行内容

  cast 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

  

 

以上是关于linux grep命令详解的主要内容,如果未能解决你的问题,请参考以下文章

linux grep命令详解

linux中grep命令详解

Linux的grep命令详解

linux grep命令详解

Linux grep命令详解

linux下find和grep命令详解