2016-01-28 47 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