Linux 在多个文件中搜索关键字

摘要:使用grep或者rg在当前目录下所有文件中查找关键字。

  在Linux操作系统下,搜索文件中的关键字可帮助用户快速找到所需的信息,满足快速排查问题的需求。在大型系统中,文件可能被保存在多个目录中并且命名也可能不同,所以,逐个文件搜索就不现实了。小编在《Linux grep查询关键词首次或者最近一次出现的地方》介绍了如何在同一个文件里搜索关键词,本篇文章将和各位一起学习如何在多个文件中搜索关键字。

使用grep命令查找文件中的关键字

  如果要在整个目录中搜索关键字,我们可以使用以下命令:

grep 'keyword' *

  它在当前目录下递归搜索所有文件。谨记,不要丢掉最后的星号,而且不可换成具体的目录。如果要忽略子目录和二进制文件,可以使用以下命令:

grep -r 'keyword' --exclude-dir={目录1,目录2} --exclude='*.ext'

  它忽略指定目录和扩展名的文件。grep还可以在指定目录下递归所有文件搜索关键词,命令如下:

grep "keyword" /data/logs -R | tail -3

业务含义:遍历目录/data/logs下的所有文件,最多展示包含关键词keyword的三行记录。

使用rg命令查找文件中的关键字

  ripgrep是一个比grep高效的关键词搜索工具,rg (ripgrep)支持使用正则表达式和Unicode搜索。在整个项目中查找的命令如下:

rg 'keyword' 目录

  上述命令会递归搜索指定目录下的所有文件。服务器一般不支持rg命令,会出现如下提示:

bash: rg: command not found

  这时候,请安装rg指令,或者更换为grep。如果需要排除指定文件,则语法糖如下:

rg 'keyword' --ignore-file=ext:文件后缀 --ignore-dir={目录1,目录2}

  上述命令会忽略指定目录和扩展名的文件。

结束语

  以上就是这篇文章的全部内容了,希望本文对道友的学习或者工作能带来一定的帮助,如有疑问请留言交流。Wiener在此祝各位生活愉快!工作顺利!

posted @ 2023-10-12 19:57  楼兰胡杨  阅读(2281)  评论(0编辑  收藏  举报