Bash脚本高效循环(不同的源文件)

时间:2015-07-20 08:54:45

标签: linux bash file for-loop

首先,我是bash脚本的初学者。我通常用Java编写代码,但是这个特定的任务要求我在Linux中创建一些bash脚本。仅供参考我已经制作了一个工作脚本,但由于我处理的文件较多,我认为它效率不高。

问题很简单我有2个日志需要比较并对其中一个日志进行一些修正...我称之为logA和logB。这2个日志包含不同的格式,这是一个例子:

  

01/04/2015 06:48:59 | 9691427842139609 | 601113090635 | PR | 30.00 | 8.3 | 1.7 | < - log A

     

17978712 2015-04-01 06:48:44 601113090635 SUCCESS DealerERecharge。< -log B

     

17978714 2015-04-01 06:48:49 601113090635 SUCCESS DealerERecharge。< -log B

正如您所看到的,时间戳存在差距。与日志A匹配的实际日志是ID为17978714的日志,因为它是距离它最近的时间。我见过的最长时间差距是1分钟。我不能使用RANGE逻辑,因为如果日志B上有多行在1分钟范围内,则所有行都将显示在我的重新生成的日志中。

我制作的脚本包含一个for循环,它迭代日志A的时间戳,直到它击中日志B中的东西(它击中的第一个是最接近的)

在for循环中,我有这行代码使循环变慢。

 LINEOUTPUT=$(less $File2 | grep "Validation 1" | grep "Validation 2" | grep "Timestamp From Log A")

我已经使用SED阅读了一些示例,但问题是在将其与时间戳匹配之前,我需要再考虑2个验证。

验证用作过滤器,以缩小日志A和B的完全匹配。

其他信息:我尝试通过执行一些循环对我制作的脚本进行一些基准测试。我注意到的一件事是,即使我只为该脚本使用1个管道,循环滴答仍然很慢。

0 个答案:

没有答案