【发布时间】:2018-10-08 19:32:25
【问题描述】:
这是我自动生成的日志文件(连续一分钟检查我的互联网线路):
$ cat log.csv
2018-04-27,23:37,OK
2018-04-27,23:38,OK
2018-04-27,23:39,OK
2018-04-27,23:40,ERROR
2018-04-27,23:41,ERROR
2018-04-27,23:42,OK
2018-04-27,23:43,OK
2018-04-27,23:44,OK
2018-04-27,23:45,OK
我试图通过编写一些依赖于第三个字段(行状态:OK/ERROR)状态和删除连续值的解释方法的脚本,某种shell脚本,使它更便于阅读仅显示互联网线路的初始和状态变化,将上述日志转换为:
2018-04-27,23:37,OK
2018-04-27,23:40,ERROR
2018-04-27,23:42,OK
这意味着:
2018-04-27,23:37,Entered Status OK
2018-04-27,23:40,Entered Status ERROR
2018-04-27,23:42,Entered Status OK
可以看出,只保留状态更改会使日志的显示更短且更容易阅读。
假设日志文件可能很长(考虑几个月的一分钟日志记录),在 Linux shell 上编写此“解释”脚本可能是一种适当(有效)的方法?
我知道 considered 在 shell 上迭代不是一个非常好的主意,所以我在考虑 AWK,但我对它不是很有经验。
当然,循环解决方案总比没有好。
更多数据:
- 一个类似(但不一样)的问题(我也问过)here。
【问题讨论】: