问题遇到的现象和发生背景
一个目录下有一些错误日志文件,文件内容是下面这样的:
2023-01-18 01:02:25.142 <INFO><WebAccessStatistic.java><execution><98>处理
...
...
2023-01-18 05:05:01.645 <INFO><WebAccessStatistic.java><execution><98>处理
2023-01-18 05:10:03.478 <ERROR><WebAccessStatistic.java><execution><444>[异常结束。
at com.ssh2.Connection.java:525)
at com.ssh2.diss.Handling.java:221)
at com.ssh2.middle.WebVisit.java:54)
]
2023-01-18 05:20:06.240 <ERROR><WebAccessStatistic.java><execution><672>[异常结束。
2023-01-18 05:30:07.520 <ERROR><WebAccessStatistic.java><execution><444>[异常结束。
at com.ssh2.Connection.java:525)
at com.ssh2.diss.Handling.java:221)
at com.ssh2.middle.WebVisit.java:54)
]
我的解答思路和尝试过的方法
find logs/** -name "." -exec bash -c "echo -n '文件名:{},'&&head -1 {}|cut -c-19|tr '\n' ','&&tail -1 {}|cut -c-19" ; >> /dataAnalysis.csv
用这个命令能够生成:文件名及对应的开始时间和结束时间,但这条命令对于没有错误日志是可以的,但像上面有报错日志时就不行了。
我想要达到的结果
目标:
第1个:对这些日志文件,生成“文件名(包括路径)及对应这个日志文件中的开始时间和最后一条能截取到的时间,对上面文件指的就是:2023-01-18 05:30:07。
第2个:对这些日志文件,生成“文件名(包括路径)及对应这个日志文件中的开始时间和最后一条非ERROR日志的时间,对上面文件指的就是:2023-01-18 05:05:01。
非常感谢!