现在许多日志是多进程同时输出到多个文件,但这样在分析LOG时十分不方便。
现在使用几个简单的shell命令就可以实现根据时间戳进行日志文件的合并,供参考:
(1)给每个文件增加索引行号
使用cat -n 给合并前的日志增加行号。
# cat -n xxx.log > aaa.log
......
(2)合并所有的带行号的文件到一个文件中
# cat aaa.log > total.log
.....
(3)整理替换文件中的TAB为空格
便于排序时指定域。我用vim :%s/ / 进行替换
同时要注意首列的空格也要删除,因为sort要用空格区分域。
(4)使用sort命令对希望的域进行时间排序
先按照时间排序,再按照行号排序。下面是用空格分隔,然后根据第3域,然后再根据第1域进行排序。
# sort -t ' ' -k3,3 -k1n total.log > show.log
(5)使用awk命令删除辅助的行号域
排除输出第一个域,整理出最终合并好的日志文件showok.log。
# awk '{$1=""; print $0}' show.log > showok.log