【问题标题】:Bash: How to search for a specific phrase in all files named output.log across all sub directoriesBash:如何在所有子目录中名为 output.log 的所有文件中搜索特定短语
【发布时间】:2016-03-17 15:05:58
【问题描述】:

我正在努力弄清楚如何做到这一点,并且搜索结果并不多。我觉得我需要编写一个脚本。

假设我有一个名为“日志输出”的目录。在“日志输出”中,我有一个 2016、2015、2014 等文件夹。在每个文件夹中,我有 1 月、2 月、3 月 ..最后在每个文件夹中都有一个名为 output.log 的文件.

如何在“日志输出”目录中运行命令以扫描所有子目录以查找名为“output.log”的文件,然后在此日志文件中搜索特定短语。我不需要它来搜索 output.log 之外的任何其他文件,并且可以将目录组织到 X 子目录深处。

尽管玩了很长时间,但还是想不通这个..

【问题讨论】:

    标签: linux bash grep find command-line-interface


    【解决方案1】:
    find 'Log outputs' -name 'output.log' -exec grep 'searchkey' {} \;
    

    如果您需要查看文件名和行号,请​​在 grep 命令中添加-Hn

    【讨论】:

    • 干得好;我建议用+ 替换\; 以提高效率(您通常只会得到grepsingle 调用。然后反转逻辑:然后需要-h 来抑制文件前缀)。
    • @mklement0:很好。今天我从你们的 cmets 那里学到了很多东西。
    • 太棒了,谢谢。看起来效率很高,很快就完成了。我不确定的一件事: \; 的目的是什么? vs + 正如 mklement0 提到的那样?
    猜你喜欢
    • 2022-08-24
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-25
    • 2019-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多