如何在旧版本的 grep 中重现 grep 的 --recursive 选项

2 linux grep

我正在研究一个grep缺乏 -r/--recursive 选项的古老 UNIX 。

我需要找到我们的应用程序导致的错误,但我不知道我们的应用程序将错误写入哪个日志文件。但是,我确实知道日志文件位于/opt. 所以我想/opt*.log. 这是我尝试过的:

find /opt | xargs grep FooErrorMessage
Run Code Online (Sandbox Code Playgroud)

-- 但这不起作用,我不知道在哪里指定我只想要*.log命令中的文件。

atk*_*atk 5

您只是想找到所有日志文件/opt并搜索它们,somethnig_I_am_looking_for对吗?为什么不:

find /opt -name '*.log' | xargs grep something

或者

find /opt | grep .log | xargs grep something

?

哦,因为我不知道如何评论其他答案:小心 *.log,因为 shell 会将其解释为通配符,并匹配当前目录中以 .log 结尾的所有文件.log。您应该使用 \*.log 或 '*.log'

  • dotjoe - 小心双引号。shell 解释双引号内的内容。单引号防止解释。 (4认同)