检查文件中的变量以确保增量一致性

0 grep cygwin awk text-processing

我正在使用 cygwin 并且有一些使用 grep 编写脚本的经验。它让我有可能在巨大的日志文件中找到一些特定的字符串。现在我面临下一个挑战,但不知道如何解决。基本上我想检查一个文件中的一个数字,在前一行中使用相同的数字。考虑以下文件:

跟踪日志文件

此消息中的第二列是以毫秒为单位的相对时间。

我想检查与先前值的差异。我想显示差异大于 50 毫秒的出现次数 (717 - 667 > 50)

任何人都知道如何做到这一点?我使用 grep 的方式是在一个洞中过滤一个完整的文件。它很棒很强大,但现在我不能在这里使用它。

Sté*_*las 5

这是一个典型的工作awk

awk '$2 - prev > 50; {prev = $2}' < file
Run Code Online (Sandbox Code Playgroud)

或者只考虑在第二个字段中有数字的行并跳过带有数字的第一行:

awk 'prev != "" && $2 - prev > 50; $2 ~ /[0-9]/ {prev = $2}' < file
Run Code Online (Sandbox Code Playgroud)