我正在尝试找到一种解决方案来快速合并来自 2 个应用程序服务器的 2 个日志文件。
日志文件是这样的:
00:00:00,028 DEBUG [com.acme.productionservice...
我想要一些基于时间戳打印日志文件的一行或另一行的东西,例如:
如果文件一有两行:
00:00:00,028 DEBUG [com.acme.productionservice...
00:00:00,128 DEBUG [com.acme.productionservice...
和文件二有这 3 行:
00:00:00,045 DEBUG [com.acme.productionservice...
00:00:00,100 DEBUG [com.acme.productionservice...
00:00:00,150 DEBUG [com.acme.productionservice...
输出应该是
00:00:00,028 DEBUG [com.acme.productionservice... (file 1)
00:00:00,045 DEBUG [com.acme.productionservice... (file 2)
00:00:00,100 DEBUG [com.acme.productionservice... (file 2)
00:00:00,128 DEBUG [com.acme.productionservice... (file 1)
00:00:00,150 DEBUG [com.acme.productionservice... (file 2)
我目前知道的唯一方法是使用
cat file1 文件 |种类
但这对于 gb 的日志来说非常慢
我需要一些东西,比如阅读 2 个文件并比较时间戳并决定要打印的内容。
最佳答案
我最终使用
sort -m
我还使用了一个技巧来了解日志来自哪个日志文件
for a in *.log ; do
awk '$0=FILENAME" "$0' $a > $a.log
do
sort -m -k 2 *.log.log
关于shell - 根据时间戳将多个日志文件合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34397583/