详解grep命令

  • 0 引言
  • 1 grep命令详解
  • 2 示例
  • 3 高级应用
  • 3.1 多条件联合搜索
  • 3.2 和find并用

0 引言

在前面我们讲解了whereis命令,locate命令以及find命令。他们是在文件系统搜索满足一定条件的文件。在日常的工作中,我们还有一个十分常见的需求,就是在指定的文件查找指定的字符串。我们可以使用grep命令来完整这个需求。

1 grep命令详解

作用:查找文件里符合条件的字符串。 格式:grep -参数 文件 常用的参数: -c显示文件中包含搜索内容的行数。 -n列出所有匹配的行,并在最前面添加要查找的内容出现在文件的第几行。 -v显示文件中不包含所搜索内容的行数,与参数c相反 -i搜索时忽略大小写 -l列出包含所搜索内容的文件的文件名 -r对当前目录和子目录进行递归搜索 -w精确搜索,完全匹配。比如:grep -w b* a.txt:此命令执行时,*不会默认为任何字符,只表示字面意思,就是一个*字符. -x只显示匹配的内容,而不是整行。

2 示例

首先工作目录下存在如下文件:

文件内容分别为:

  1. 查找前缀有“test”的文件包含“test”字符串的文件,把打印包含test的行。
  2. linux grep准确匹配 linux中grep命令或查询的用法_linux grep准确匹配

  3. 查找前缀有“test”的文件包含“test”字符串的行数。
  4. linux grep准确匹配 linux中grep命令或查询的用法_linux grep准确匹配_02

  5. 可以看到,testfile1有1行包含test的内容。testfile_2有两行包含test的内容。
  6. 查找前缀有“test”的文件包含“test”字符串的文件,把打印包含test的行。并显示查找结果处于文件的第几行。
  7. linux grep准确匹配 linux中grep命令或查询的用法_linux_03

  8. 可以看到,testfile1有1行包含test的内容,位于文件的第一行。testfile_2有两行包含test的内容,分别位于文件的第二行和第三行。
  9. 查找前缀有“test”的文件不包含“test”字符串的文件,把打印包含test的行。
  10. linux grep准确匹配 linux中grep命令或查询的用法_linux_04

  11. 查找前缀有“test”的文件包含“test”字符串的文件,把打印包含test的行,查找的过程忽略大小写。
  12. linux grep准确匹配 linux中grep命令或查询的用法_文件包含_05

  13. 查找前缀有“test”的文件,列出包含“test”字符串的文件的文件名。
  14. linux grep准确匹配 linux中grep命令或查询的用法_linux grep准确匹配_06

  15. testfile1和testfile_2中还有test字符串。
  16. 对当前目录进行递归搜索,列出包含test字符串的行。
  17. linux grep准确匹配 linux中grep命令或查询的用法_linux grep准确匹配_07

  18. 查找前缀有“test”的文件包含“test”字符串的文件,把打印包含test的行。查找的过程进行精确匹配。
  19. linux grep准确匹配 linux中grep命令或查询的用法_linux grep准确匹配_08

  20. 可见testfile1包含的testfile和testfile_2包含的testing都没有被列出来。
  21. 查找前缀有“test”的文件,是否包含内容为test的行。
  22. linux grep准确匹配 linux中grep命令或查询的用法_linux_09

  23. 可见搜索结果没有内容。对testfile_2修改,添加test行。
  24. linux grep准确匹配 linux中grep命令或查询的用法_文件包含_10

  25. 再次进行搜索,查找到结果。
  26. linux grep准确匹配 linux中grep命令或查询的用法_linux grep准确匹配_11

注意:,如果搜索内容中有空格,则需要使用单引号或者双引号把搜素内容引起来,比如: grep “hello all” a.txt或者grep ‘hello all’ a.txt,如果不加单双引号,则提示搜搜错误,无法识别,因为不加引号,直接grep hello all a.txt,表示在all 和a.txt中搜索hello,

3 高级应用

3.1 多条件联合搜索

3.2 和find并用

参考内容:

  1. inux之grep命令
  2. Linux grep 命令
  3. grep命令