我正在尝试在 Python 中执行以下操作,同时还使用了一些 bash 脚本。除非 Python 有更简单的方法。
我有一个日志文件,其中包含如下所示的数据:
16:14:59.027003 - WARN - Cancel Latency: 100ms - OrderId: 311yrsbj - On Venue: ABCD
16:14:59.027010 - WARN - Ack Latency: 25ms - OrderId: 311yrsbl - On Venue: EFGH
16:14:59.027201 - WARN - Ack Latency: 22ms - OrderId: 311yrsbn - On Venue: IJKL
16:14:59.027235 - WARN - Cancel Latency: 137ms - OrderId: 311yrsbp - On Venue: MNOP
16:14:59.027256 - WARN - Cancel Latency: 220ms - OrderId: 311yrsbr - On Venue: QRST
16:14:59.027293 - WARN - Ack Latency: 142ms - OrderId: 311yrsbt - On Venue: UVWX
16:14:59.027329 - WARN - Cancel Latency: 134ms - OrderId: 311yrsbv - On Venue: YZ
16:14:59.027359 - WARN - Ack Latency: 75ms - OrderId: 311yrsbx - On Venue: ABCD
16:14:59.027401 - WARN - Cancel Latency: 66ms - OrderId: 311yrsbz - On Venue: ABCD
16:14:59.027426 - WARN - Cancel Latency: 212ms - OrderId: 311yrsc1 - On Venue: EFGH
16:14:59.027470 - WARN - Cancel Latency: 89ms - OrderId: 311yrsf7 - On Venue: IJKL
16:14:59.027495 - WARN - Cancel Latency: 97ms - OrderId: 311yrsay - On Venue: IJKL
我需要从每一行中提取最后一个条目,然后使用每个唯一条目并搜索每一行,然后将其导出到 .csv 文件中。
我使用以下 bash 脚本来获取每个唯一条目: cat LogFile_ date +%Y%m%d
.msg.log | awk '{打印 $14}' | 排序 | 独特的
根据日志文件中的上述数据,bash 脚本将返回以下结果:
ABCD
EFGH
IJKL
MNOP
QRST
UVWX
YZ
现在我想在同一个日志文件中搜索(或 grep)每个结果并返回前十个结果。我有另一个 bash 脚本来执行此操作,但是,如何使用 FOR 循环来执行此操作?因此,对于 x,其中 x = 上面的每个条目,
grep x LogFile_ date +%Y%m%d
.msg.log | awk '{打印 $7}' | 排序-nr | 独特 | 头-10
然后将结果返回到 .csv 文件中。结果将如下所示(每个字段位于单独的列中):
Column-A Column-B Column-C Column-D
ABCD 2sxrb6ab Cancel 46ms
ABCD 2sxrb6af Cancel 45ms
ABCD 2sxrb6i2 Cancel 63ms
ABCD 2sxrb6i3 Cancel 103ms
EFGH 2sxrb6i4 Cancel 60ms
EFGH 2sxrb6i7 Cancel 60ms
IJKL 2sxrb6ie Ack 74ms
IJKL 2sxrb6if Ack 74ms
IJKL 2sxrb76s Cancel 46ms
MNOP vcxrqrs5 Cancel 7651ms
我是 Python 的初学者,自大学以来(13 年前)就没有做过太多的编码。任何帮助将不胜感激。谢谢。