【问题标题】:Unix script to search for a specific keyword in all files and sub directories of a directories or folder用于在目录或文件夹的所有文件和子目录中搜索特定关键字的 Unix 脚本
【发布时间】:2020-01-03 09:50:01
【问题描述】:

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

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

grep -r -H "Keyword" *.log

请建议我如何实现这一目标。

谢谢

【问题讨论】:

    标签: shell unix grep find


    【解决方案1】:

    请您尝试关注一下。

    find /dir_name/ -type f -name "*.log" -exec grep -l "your_string" {} \+ 2>/dev/null
    

    【讨论】:

    • 试试 -name 这样的选项 stackoverflow.com/questions/57721685/#57721767 :-)
    【解决方案2】:

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

    grep -R -H "Keyword" .
    

    但我认为你想使用 find。

    find . -name '*.log' -exec grep -H "Keyword" {} \;
    

    【讨论】:

    • 如果您只想要文件名而不是 ./path/to/dir/test.log:Keyword,请使用 -l 选项。
    猜你喜欢
    • 2018-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 2021-01-25
    • 2017-09-18
    相关资源
    最近更新 更多