grep 指定类型的文件中搜索 grep在文件中搜索关键字

   日期:2024-12-25    作者:jiangningqiushi 移动:http://ljhr2012.riyuangf.com/mobile/quote/8780.html


Grep(Global regular expression  print,全局正则表达式输出)的缩写,他是Linux中最强的的命令之一。grep在一个或多个输入文本中搜索与给定模式匹配的行。并将每条匹配的行写入标准的输出。如果未至定文件,则grep将从标准输入读取,输入通常是另一个命令的输出。

方括号中的项目是可选的:

  •  OPTIONS-零个或多个选项,Grep包含许多控制其行为的选项。
  •  PATTERN-搜索模式
  •  FILE-零个或多个输入文件名

为了能够搜索文件,运行命令的用户必须对文件具有可读权限。

1、要显示/etc/passwd文件中包含字符串bash的所有行,请运行一下命令:

        2、如果字符串中包含空格,则需要将其用单引号或者双引号引起来。

        3、反转匹配(排除),要显示与模式不匹配的行,用 -V(--invert-match)选项

        4、使用grep过滤命令的输出,使用grep通过管道过滤命令的输出,并且只有与给定模式匹配的行才会打印在终端上。

        可以在命令中使用多个管道,在上面的输出中看到的,还有一行包含grep进程,如果不希望看到改行,则将输出再传递到另一个grep实例,如下所示:

        5、递归搜索,要递归搜索模式,可以使用-r选项(或--recursive)调用grep。使用此选项时,grep将搜索指定目录下的所有文件,并跳过递归遇到的符号链接。要跟随所有符号链接,请使用-R(--dereference-recursive),而不是-R

        6、如果使用-R选项,则grep将跟随所有符号链接

      7、仅显示文件名

         要取消默认grep输出并仅打印包含匹配模式的文件名,请使用-l(或--files-with-matches)选项。

         以下命令在当前工作目录中搜索所有以.conf结尾的文件,并仅显示包含字符串linuxidc.com的文件的名称:

      8、不区分大小写的搜索

        默认情况下,grep区分大小写。 这意味着将大写和小写字符视为不同的字符。要在搜索时忽略大小写,请使用-i选项(或--ignore-case)调用grep。

        9、搜索全词

搜索字符串时,grep将显示该字符串嵌入较大字符串中的所有行。例如,如果您搜索“ gnu”,则将以较大的单词(例如“ cygnus”或“ magnum”)嵌入“ gnu”的所有行都将匹配:

要仅返回指定字符串是整个单词(用非单词字符括起来)的那些行,请使用-w(或--word-regexp)选项。文字字符包括字母数字字符(a-z,A-Z和0-9)和下划线(_)。 所有其他字符均视为非单词字符。

     10、显示行号

-n(或--line-number)选项告诉grep显示包含与模式匹配的字符串的行的行号。 使用此选项时,grep将匹配项打印到以行号为前缀的标准输出。

      11、Count函数匹配

若要将匹配行数打印到标准输出,请使用-c(或 --count)选项。

       12、GNU Grep具有三个正则表达式功能集,Basic、 Extended 和 perl 兼容

        Basic正则表达式:

默认情况下,grep将模式解释为基本的正则表达式,其中除元字符之外的所有字符实际上都是与自己匹配的正则表达式。

以下是最常用的元字符的列表:

Extended正则表达式

要将模式解释为扩展的正则表达式,请使用-E(或--extended-regexp)选项。 扩展的正则表达式包括所有基本元字符,以及用于创建更复杂和更强大的搜索模式的其他元字符。 以下是一些示例:

-o选项仅用于打印匹配的字符串。

搜索多个字符串(模式)

可以使用OR运算符|将两个或多个搜索模式结合在一起。

默认情况下,grep将模式解释为基本正则表达式,其中的元字符(例如|) 失去其特殊含义,必须使用反斜杠版本。

在匹配之前打印行

要在匹配行之前打印特定数量的行,请使用-B(或 --before-context)选项。

例如,要在匹配行之前显示5行前奏上下文,可以使用以下命令:

$grep -B 5 root /etc/passwd

匹配后打印行

若要在匹配行之后打印特定数量的行,请使用-A(或 --after-context)选项。

例如,要在匹配行之后显示尾随上下文的五行,可以使用以下命令:

$grep -A 5 root /etc/passwd

 

 

 


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号