Awk 在使用perl的unix平台中,从snmp::GetTrapd Log中,我必须grep对应于十六进制字符串值的整数:级别
在下面的日志中,我必须grep整数:level1(1)和十六进制字符串:Awk 在使用perl的unix平台中,从snmp::GetTrapd Log中,我必须grep对应于十六进制字符串值的整数:级别,awk,grep,snmp,snmp-trap,Awk,Grep,Snmp,Snmp Trap,在下面的日志中,我必须grep整数:level1(1)和十六进制字符串:22 00,并对两者进行比较 在我的例子中,如果整数:level1(1)对应于十六进制字符串:22 00,那么检查点应该通过。那么我如何才能做到这一点呢 日志: 使用以下命令: awk '/level1\(1\)/ && /22 22 22 22 22 22 00 00/ {print "ok"}' file 它将测试所有行,如果一行同时包含level1(1)和22 00 00printok 要使其更准确,
22 00
,并对两者进行比较
在我的例子中,如果整数:level1(1)对应于十六进制字符串:22 00
,那么检查点应该通过。那么我如何才能做到这一点呢
日志:
使用以下命令:
awk '/level1\(1\)/ && /22 22 22 22 22 22 00 00/ {print "ok"}' file
它将测试所有行,如果一行同时包含level1(1)
和22 00 00
printok
要使其更准确,您可以使用:
awk '/INTEGER: level1\(1\)/ && /Hex-STRING: 22 22 22 22 22 22 00 00/ {print "ok"}' file
如果要将其存储在变量中:
test=$(awk '{f+=(/level1\(1\)/ && /22 22 22 22 22 22 00 00/)?1:0} END {print f}' file)
echo $test
1
如果regex为true,变量test
将为1
或更多
test=$(awk '{f+=(/level1\(1\)/ && /22 22 22 22 22 22 00 00/)?1:0} END {print f}' file)
echo $test
1