当前位置: 首页 > 知识库问答 >
问题:

用于在目录或文件夹的所有文件和子目录中搜索特定关键字的Unix脚本

魏浩广
2023-03-14

我正在开发一个外壳脚本,它将在文件夹中的所有日志文件和子文件夹中搜索特定的关键字。

我正在使用下面的grep命令,但它只显示当前目录中的关键字,而不显示子目录中的关键字。在我的例子中,我有一堆子目录,其中日志文件将在那里,它不会显示子目录中的文件。

grep -r -H "Keyword" *.log

请建议我如何做到这一点。

谢谢

共有2个答案

斜昊空
2023-03-14

你能试试下面的吗。

find /dir_name/ -type f -name "*.log" -exec grep -l "your_string" {} \+ 2>/dev/null
胡光霁
2023-03-14

您使用了错误的参数和错误的命令。使用grep时,它应该是-R,您只能在目录中搜索。

grep -R -H "Keyword" .

但我认为你想用find。

find . -name '*.log' -exec grep -H "Keyword" {} \;
 类似资料:
  • 所以我开始使用Neovim /Spacevim,它真是太棒了! 我仍然在习惯一切,因为我以前从未使用过Vim或类似的东西。 我的问题围绕着在当前打开的项目的所有文件中搜索特定文本。 我正在使用文件管理器,我想知道如何在项目中的所有文件中搜索特定字符串。就像如果我想在当前打开的文件夹/目录中搜索,我该如何去做?主要目标是列出包含此搜索字符串的所有文件。 我已经安装了(以及),但在搜索所有文件中的特定

  • 问题内容: 请给我一个使用php列出目录中所有文件夹,子文件夹,文件的解决方案。我的文件夹结构是这样的: 我想获取每个文件夹内所有文件的列表。 php中有任何shell脚本命令吗? 问题答案:

  • 问题内容: 如何在当前目录及其子目录中显示所有大于10k字节的文件。 尝试过,但是没有用。 问题答案: 第一部分与@sputnicks答案相同,并成功查找目录中超过10k的所有文件(不要将k与K混淆),我的补充是,第二部分然后执行或ls列出(-l)文件通过人类可读的大小(-h)。如果愿意,可以取反h。当然是文件本身,而仅仅是文件的替代 在实践中会重复或: 将其显示为一条语句或: 更多\; vs +

  • 问题内容: 如何在cygwin中使用grep查找包含 两个 单词的所有文件。 这就是我用来递归搜索目录中所有文件的一个单词的方法: 如何扩展以上内容以查找同时包含“ db-connect.php”和“版本”的文件。 我试过了:但这是一个OR,即它获取包含一个或另一个的文件。 谢谢大家的帮助 问题答案:

  • 问题内容: 列出1000多个目录和子目录中文件名的最快方法是什么? 编辑; 我使用的当前代码是: 问题答案: 看起来不错(递归遍历目录)瓶颈将是您需要执行的所有文件I / O操作,优化Java不会显示任何实际改进。

  • 问题内容: 这应该很简单,但是我无法理解-“编写一个在给定目录中搜​​索特定文件名的程序。” 我找到了一些硬编码的文件名和目录的示例,但是我需要目录名和文件名都与用户输入的相同。 问题答案: 您可以尝试这样的事情: 这是输出: