我可以使用以下命令来搜索过去 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 行,因为它们介于 6am 和 6pm 之间。
如有任何帮助,我们将不胜感激
最佳答案
一种简单丑陋的方法是添加大量 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/