linux - 使用 Find/Grep 在一天中的特定时间之间搜索文件

标签 linux unix find grep cygwin

我可以使用以下命令来搜索过去 10 天的日志文件:

find . -type f -mtime -10 |xargs grep -i -n 'exception' 2> /dev/null

但我想进一步限制对文件中在上午 6 点下午 6 点之间记录的行的搜索。我想知道如何修改 grep 命令来过滤这些内容,如果这些行如下所示:

2012-09-04 03:50:41,658 [MainLogger: ] EXCEPTION  AppLog - some exception 1
2012-09-04 10:01:32,902 [MainLogger: ] EXCEPTION  AppLog - some exception 2
2012-09-04 15:39:51,901 [MainLogger: ] EXCEPTION  AppLog - some exception 3
2012-09-04 18:12:51,901 [MainLogger: ] EXCEPTION  AppLog - some exception 4

在上述情况下,应返回第 2 行和第 3 行,因为它们介于 6am6pm 之间。

如有任何帮助,我们将不胜感激

最佳答案

一种简单丑陋的方法是添加大量 grep,如下所示:

find . -type f -mtime -10 |xargs grep -i -n 'exception' | grep -v " 00" | grep -v " 01" | ... | grep -v " 18" | grep -v " 19" ... 2> /dev/null

或更简洁地说:

find . -type f -mtime -10 |xargs grep -i -n 'exception' | grep -v -e " \(0[012345]\|18\|19\|2[0123]\)" 2> /dev/null

关于linux - 使用 Find/Grep 在一天中的特定时间之间搜索文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12267496/

相关文章:

c - 如何从 c 头文件中提取函数原型(prototype)以实现自动完成功能

unix - 如何使用 unix 环境删除 2 个文本文件之间的常见情况?

linux - Bash 中 $() 和 () 的区别

regex - 如何在 find 命令中使用正则表达式?

linux - 在 bash 中将正在运行的函数发送到后台

linux - 递归查找比给定时间更新的所有文件

python - 使用 Python os 模块获取 unix 文件类型

linux - 如何像这样grep字符串?

javascript - 有没有办法使用 Javascript 在 DIV 中找到最后一个元素的 ID?

MySQL 5.6 LOAD XML LOCAL INFILE 和空 XML 元素