【发布时间】:2015-10-10 10:48:02
【问题描述】:
我在 Linux 上(有时也在 AIX 上)并且在一个文件夹中有一堆日志文件。我有一个 grep 命令,它会以如下格式过滤掉所有的错误。
CreateOrder_hostname_tee.log:2015-09-29 15:42:06,715:ERROR :Thread-26_CreateOrder: [1443555726715] Error1 [system]: Class1
CreateOrder_hostname_tee.log:2015-09-29 15:42:06,715:ERROR :Thread-15_CreateOrder: [1443555726715] Error1 [system]: Class1
CreateOrder_hostname_tee.log:2015-09-29 15:42:06,715:ERROR :Thread-28_CreateOrder: [1443555726715] Error2 [system]: Class2
ScheduleOrder_hostname_tee.log:2015-09-30 03:55:05,011:ERROR :Thread-5_ScheduleOrder: [1443599705009] Error3 [system]: Class3
是否可以使用 grep/awk/sed 的某种组合来获取上述格式的数据?
API: Error: Count
CreateOrder: Error1: 50
CreateOrder: Error2: 50
ScheduleOrder: Error3: 50
如果没有,是否有可能获得这样的格式?然后我可以使用 wc 或类似的方法来计算不同的错误。
API: Date: Error
CreateOrder: 2015-09-29 15:42:06,715: Error1
CreateOrder: 2015-09-29 15:42:06,715: Error2
ScheduleOrder: 2015-09-29 15:42:06,715: Error3
编辑 1:
错误可以是任何字符串(包括空格)。基本上,应该显示下面括号之间的任何内容。
[1443555726715] Error1: This is an error with description. [system]: Class1
【问题讨论】:
-
50s 来自哪里?我没有在输入中看到它们。 -
@Alfe:我认为是该错误类型的出现次数
-
这只是错误发生次数的计数——我在编造虚拟数据。
-
是否事先知道错误开始模式? (如 CreateOrder、ScheduleOrder 等)?