【发布时间】:2020-01-03 09:50:01
【问题描述】:
我正在开发一个 shell 脚本,它将在文件夹中的所有日志文件和子文件夹中搜索特定关键字。
我正在使用下面的 grep 命令,但它只显示当前目录中的关键字,而不是子目录中的关键字。就我而言,我有一堆子目录,其中日志文件将在那里不显示子目录中的文件。
grep -r -H "Keyword" *.log
请建议我如何实现这一目标。
谢谢
【问题讨论】:
我正在开发一个 shell 脚本,它将在文件夹中的所有日志文件和子文件夹中搜索特定关键字。
我正在使用下面的 grep 命令,但它只显示当前目录中的关键字,而不是子目录中的关键字。就我而言,我有一堆子目录,其中日志文件将在那里不显示子目录中的文件。
grep -r -H "Keyword" *.log
请建议我如何实现这一目标。
谢谢
【问题讨论】:
请您尝试关注一下。
find /dir_name/ -type f -name "*.log" -exec grep -l "your_string" {} \+ 2>/dev/null
【讨论】:
-name 这样的选项 stackoverflow.com/questions/57721685/#57721767 :-)
您使用了错误的参数和错误的命令。用grep,应该是-R,只能在目录中搜索。
grep -R -H "Keyword" .
但我认为你想使用 find。
find . -name '*.log' -exec grep -H "Keyword" {} \;
【讨论】:
./path/to/dir/test.log:Keyword,请使用 -l 选项。