我有一個日誌文件(file.log
),在文件中有多次出現的id,即82244956
。grep唯一的事件
gzip -cd /opt/log.gz | grep "JBOSS1-1" >> ~/file.log
實施例::
2012-04-10 09:01:18,196 LOG (7ysdhsdjfhsdhjkwe:IN) JBOSS1-1 (RP-yedgdh5567) [PayPalWeb] Fetch data with id: 82244956
2012-04-10 09:02:18,196 LOG (24343sdjjkidgyuwe:IN) JBOSS1-1 (RP-yedgdh5567) [PayPalWeb] Fetch data with id: 82244956
2012-04-10 09:03:18,196 LOG (6744443jfhsdgyuwe:IN) JBOSS1-1 (RP-yedgdh5567) [PayPalWeb] Fetch data with id: 82244957
2012-04-10 09:04:18,196 LOG (7ysdhsd5677dgyuwe:IN) JBOSS1-1 (RP-yedgdh5567) [PayPalWeb] Fetch data with id: 82244957
同樣,我們具有10000行具有不同ID(但每個ID重複2-3次實施例的頂部和底部兩行中 file.log
已使用命令創建這個例子分別以id 82244956和82244957重複)。我們需要根據唯一ID的結果集(從匹配的IDS任何行),即:
2012-04-10 09:01:18,196 LOG (7ysdhsdjfhsdhjkwe:IN) JBOSS1-1 (RP-yedgdh5567) [PayPalWeb] Fetch data with id: 82244956
2012-04-10 09:03:18,196 LOG (6744443jfhsdgyuwe:IN) JBOSS1-1 (RP-yedgdh5567) [PayPalWeb] Fetch data with id: 82244957
我試圖awk程序在Linux,但沒有一次成功的:
awk ' { arr[$1]=$0 } END { for (key in arr) { print arr[key] } } ' file.log >> final-report.log
或者更好的辦法會要創建具有不同ID的file.log
。
請指教我該如何修改它?
是否排序順序有關係嗎?如果沒有,你可以管你的文件通過'sort',然後再通過'uniq'給你獨特的線條。你需要傳遞一些參數來指定哪些領域你想他們整理等 – 2012-04-19 06:54:56