0 grep cygwin awk text-processing
我正在使用 cygwin 并且有一些使用 grep 编写脚本的经验。它让我有可能在巨大的日志文件中找到一些特定的字符串。现在我面临下一个挑战,但不知道如何解决。基本上我想检查一个文件中的一个数字,在前一行中使用相同的数字。考虑以下文件:
此消息中的第二列是以毫秒为单位的相对时间。
我想检查与先前值的差异。我想显示差异大于 50 毫秒的出现次数 (717 - 667 > 50)
任何人都知道如何做到这一点?我使用 grep 的方式是在一个洞中过滤一个完整的文件。它很棒很强大,但现在我不能在这里使用它。
这是一个典型的工作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)