Linux日常之命令grep

命令grep简介

  利用该命令在文本中查找指定的字符串,是Linux中最常用的文本处理工具之一。

  命令grep与正则表达式结合使用时,功能会非常强大。

  命令grep会在文本文件中按照指定的正则表达式进行全局搜索,并将搜索出的行打印出来。

 

常用选项

  1. -i,忽略大小写

  2. -n,显示结果所在行号

  3. -c,统计匹配到的行数(注,不是匹配到的次数)

  4. -o,只显示符合条件的字符串,而不是整行

  5. -v,反选,显示出不符合的行

  6. -w,匹配的是整个单词

  7. -Ax,结果所在行之后的指定行数,x为行数

  8. -Bx,结果所在行之前的指定行数,x为行数

  9. -Cx,结果所在行之前和之后的指定行数,x为行数

  10. -e,实现多个选项的匹配,逻辑or关系

  11. -q,静默模式,不输出任何信息

     eg. 当只关心是否匹配到的时候,使用此命令,然后,使用“echo $?”查看是否匹配成功,当返回0,表示成功,当返回1,表示失败

  

实例讲解

  1.  为了方便实验,存在两个用来测试的文本文件test.txt和test1.txt,内容如下所示

    

  2. 若在文本test.txt中,区分大小写地查找带有字符串“grep”的行,则有

    

    注意,默认情况下,grep是区分大小写的

  3. 若在文本test.txt中,不区分大小写地查找带有字符串“grep”的行,使用选项“-i”,则有

    

  4. 若在文本test.txt中,在区分大小写的同时,带行号的查找带有字符串“grep”的行,使用选项“-n”,则有

    

  5. 若在文本test.txt中,统计出现字符串“grep”的行数,使用选项“-c”,则有

    

    注意,所显示的内容中,并不包含对应的行内容,仅包含行数

  6. 若在文本test.txt中,不区分大小写地显示所符合的字符串“abc”,使用选项“-i”和“-o”,则有

    

    注意,并不能去重!!!

  7. 若在文本test.txt中,显示出不含有字符串“grep”的行,使用选项“-v”,则有

    

  8. 若在文本test.txt中,显示带有单词“grep”,而不是包含字符串“grep”的行,使用选项“-w”,则有

    

  9. 若在文本test1.txt中,找出年龄为18岁的同学的姓名,则使用选项“-Bx”,则有

    

    若要显示名为“李四”的年龄和性别,则有

    

    若要显示性别为“男”的同学的姓名、年龄、职业和籍贯,则有

    

  10. 若在文本test.txt中,显示出带有字符串“grep”或“abc”的行,使用选项“-e”,则有

    

    或使用“egrep”也可以

    

  11. 若在文本test.txt中,仅仅查看是否存在字符串“grep”,而不用显示对应的行,则有

    

    注意,选项“-q”是静默模式的,若想查看是否查询成功,则可以显示出“$?”的值。当“$?”为0时,表示查询成功,当“$?”为1时,表示查询失败!

posted on 2017-12-03 15:33  一个不会coding的girl  阅读(2688)  评论(0编辑  收藏  举报

导航