如何用awk对比第3行第3列数据?附输入输出及尝试代码
正确的awk实现方案
我来帮你搞定这个awk命令的问题~你的需求应该是:当输入行里established对应的数值大于1000时,输出该行的第2个字段(也就是示例里的22618)对吧?
先说说你之前尝试的命令哪里有问题:
- 你直接写了
established,awk会把它当成一个未定义的变量(默认值为空),而不是识别成输入里的字段。实际上established是第5个字段($5),它对应的数值是第6个字段($6) - 你硬编码了
print 22618,这样不管输入内容是什么,都会输出这个固定值,正确的做法应该是输出第2个字段$2
正确的awk命令
awk '$5 == "established" && $6 > 1000 { print $2 }'
命令解释
$5 == "established":先判断第5个字段是否为"established",确保我们定位到了正确的数值标识$6 > 1000:接着判断该标识对应的数值(第6个字段)是否大于1000- 当两个条件都满足时,执行
print $2,输出该行的第2个字段
测试验证
用你提供的输入内容:
uniqueid 22618 remoteid remote1 established 1302
运行上述awk命令后,会输出:
22618
内容的提问来源于stack exchange,提问作者Sonu Jaiswal
相关产品推荐
相关产品推荐

