2016-01-28 49 views
0

日誌文件具有數千以下格式生成中的行..登錄格式化使用awk命令

05:34:11,447 DEBUG [com.ibm.cmps.beer.web.action.BlastApp] deliveryConstant FTP is completed 

爲了簡化,我的日誌文本文件在以下格式

d1 o1 c1 message1 
d1 o1 c1 message2 
d1 o1 c1 message3 
d1 o1 c2 message4 
d1 o1 c2 message5 
d1 o1 c3 message6 
d1 o1 c4 message7 
d1 o1 c5 message8 

要僅顯示類名有數據(C1,C2,...)和消息,我使用以下命令以刪除塔1 & 2-

awk '{$1=$2="";print $0}' file.log 

日誌文件非常大,我想過濾日誌下面格式 -

c1 message1 
    message2 
    message3 
c2 message4 
    message5 
c3 message6 
c4 message7 
c5 message8 

我想跳過重複的類名或用空格替換它。

謝謝!

+0

你嘗試過什麼,你是怎麼得到的,和你在哪裏卡住了?你需要相當熟悉'printf()'命令。如果不同類別的長度不同,會發生什麼?縮進應該如何工作? –

+0

我試過了,但對awk的用法不太熟悉 –

回答

2
awk '!a[$3]{printf $3; a[$3]=1} {print "\t"$4}' File 

輸出:

c1  message1 
     message2 
     message3 
c2  message4 
     message5 
c3  message6 
c4  message7 
c5  message8