我可以使用以下命令在过去10天内search日志文件:
find . -type f -mtime -10 |xargs grep -i -n 'exception' 2> /dev/null
但是我想进一步限制在上午6点和下午6点之间logging的文件中的行的search。 我想知道如何修改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号线应在6点到6点之间返回。
任何帮助,将不胜感激
strftime%F在Windows上不起作用
通过Python程序将parameter passing给Cygwin
从命令行sorting不同长度的hex数字?
Windows 7上的Cygwin死于等待dll加载
Git在没有Cygwin的Windows上?
Windows上的Cygwin的SSH ControlMaster实际上可能吗?
在windows上使用cygwin的anaconda环境
如何写一个批处理(窗口)启动Cygwin(mintty.exe),然后执行一个python脚本?
如何在Windows 10上编写Cygwin环境以编译Ada GNATColl库
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
你可以像这样破解它:
grep ' 0[6789]:| 1[01234567]| 18:00:00,000'
但是,如果您需要更多的时间处理,我建议切换到更强大的语言(例如Perl和DateTime )。
在具有适当的日期时间库的任何语言中,将所有日期转换为规范表示使得问题变得微不足道。 默认的规范化是将自1970年1月1日午夜以来的秒数转换为秒。然后,看看输入行的标准数是否大于开始时间,小于结束时间。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。