繁体   English   中英

合并,排序和维护订单

[英]Merge, sort, maintain line order

这听起来很矛盾。 所以让我解释一下。 我有许多使用log4j写入不同文件并旋转的日志文件。 我想要做的是将它们合并为更少的文件。

我如何开始这样做:
-使用awk将多行条目合并为一行,并放入单独的文件中。
-cat awk输出文件为1个文件。
-对猫文件进行排序
-awk分隔连接的行。

但是我看到排序是按照与原始输出文件中出现的顺序不同的顺序将具有相同秒/毫秒的条目放入。 这可能不是一笔大买卖。 但是,我不喜欢它。 关于我要做什么的任何想法(在排序时保持其原始行顺序)? 我宁愿不编写自己的程序,并尽可能使用本机linux utils。 但是,我愿意这样做的“最佳”方式(Perl,Python等)。

我考虑过将输出文件从最高到最低排序(log4j旋转文件),这样我就不必进行排序。 但这仅解决了将文件写入同一日志文件(file1.0.log,file1.1.log等)的问题。 但这在需要将file2与file1合并时没有帮助。

谢谢格雷格

您所说的是“稳定”排序。 有一个-s的选项sort ,应该给你想要的东西。

排序算法的稳定性

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM