我正在嘗試在Python中執行以下操作,還使用了一些bash腳本。除非在Python中有更簡單的方法。Python腳本搜索並將結果導出到.csv文件
我有,看起來像數據的日誌文件中的以下內容:
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'{print $ 14}'|排序| uniq的
基於日誌文件上面的數據中,bash腳本將返回以下結果:
ABCD
EFGH
IJKL
MNOP
QRST
UVWX
YZ
現在我想搜索(或grep)來爲每個結果在相同的日誌文件並返回前十個結果。我有另一個bash腳本來做到這一點,但是,我怎麼做這個使用循環?因此,對於x,其中x =上面的每個條目,
grep x LogFile_ date +%Y%m%d
.msg.log | awk'{print $ 7}'| sort -nr | uniq |頭-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年前)。任何幫助將不勝感激。謝謝。
您的輸出如何與您的輸入相對應? –