sh,读取大量日志文件并grep一些文本并打印所有出现的文件名和行号[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我觉得这应该在某个地方回答,但我找不到一个好的答案。

我的要求是我需要在Unix服务器上搜索所有异常的最近3个月的日志(几千个文件)。

所以我需要一个命令(或脚本),它应该打印,记录文件名,行号,异常第一行,然后将该输出>路由到一个新文件。

我想要一些我可以在后台运行并在该过程完成后检查的东西。

然后,我可以针对所有频繁的异常分析该文件,并且可以专注于最常发生的异常。

谢谢您的帮助。

shell unix command-line command
1个回答
0
投票

我想这可能对你有帮助,

要删除旧文件,您可以直接使用如下所示的查找,

find <PATH> -type f -mtime -90 -exec rm {} \;

请在运行命令之前确认该文件夹,因为它也有rm

现在的诀窍是find的mtime选项,

mtime是修改时间,上面的命令将返回在过去90天内修改的所有文件,(如果你给它+90,它将返回修改超过90天的所有文件)。

如果你想grep使用find并将它管道如下所示grep,

find <PATH> -type f -mtime -90 | xargs grep -in <PATTERN> > output.log
© www.soinside.com 2019 - 2024. All rights reserved.