如何提取字段值大于特定数字的数据

use*_*605 4 linux awk

我正在尝试提取耗时超过特定毫秒的值/方法,我无法提供正确的字段分隔符

awk -F'=' '$3>960' file
awk -F'=||' '$3>960' file
Run Code Online (Sandbox Code Playgroud)

这是一个示例行:

logAlias=Overall|logDurationMillis=34|logTimeStart=2019-09-12_05:22:02.602|logTimeStop=2019-09-12_05:22:02.636|logTraceUID=43adbcaf55de|getMethod1=26|getMethod2=0|getMethod3=0|getMethod4=1|getMethod5=8
Run Code Online (Sandbox Code Playgroud)

我没有看到任何结果,或者我看到了所有交易

ogu*_*ail 6

这是一种通用,健壮且易于扩展的方法:

awk -F'|' '{
  for(i=1;i<=NF;++i) {
    split($i,kv,"=")
    f[kv[1]]=kv[2]
  }
}
f["logDurationMillis"]>960' file
Run Code Online (Sandbox Code Playgroud)