我有两个文件,fileA
(错误代码列表和阈值)和fileB
(错误日志),如下所示:
FileA
:
(ERRCODE-000004) 100
(ERRCODE-000090) 50
(ERRCODE-000110) 100
(ERRCODE-000092) 50
(ERRCODE-000419) 100
FileB
:
user@hostname 3 (ERRCODE-000003) This is error description
user@hostname 14 (ERRCODE-000090) This is error description
user@hostname 871 (ERRCODE-000090) This is error description
我想在FileB
中打印包含来自FileA
第一列的错误代码的行,而的错误计数大于{{1}中的阈值}。
fileA
预期结果:
(column three in fileB = column one in fileA) AND
(column two in fileB > column two in fileA )
我试过了
user@hostname 871 (ERRCODE-000090) This is error description
但是第二个条件是硬编码的(awk 'NR==FNR{a[$1]++;next}a[$3] && $2>=50' fileA fileB
)。
答案 0 :(得分:1)
您可以使用in
关键字检查数组中是否存在密钥:
awk 'NR==FNR{a[$1]=$2;next} $3 in a && $2>a[$3]' filea fileb
请注意,这假定filea每个代码只有一个条目