使用awk命令

时间:2016-01-28 08:29:18

标签: linux bash shell 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列和第1列。 2 -

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

由于日志文件非常大,我想以下面的格式过滤登录 -

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

我希望跳过重复的类名或用空格替换它。

谢谢!

1 个答案:

答案 0 :(得分: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