技术解析

如何在 linux 脚本里面只显示某一列非 0 的数据?
0
2021-07-05 05:41:09
idczone
iptables 显示如下的数据格式:
Chain OUTPUT (policy ACCEPT 104K packets, 140M bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:4000
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:4001
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:4002
111 44388 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:4009

我想只显示出口流量非 0 也就是上面第四行的数据,我写以下脚本没效果,不知道哪里错了?

iptables -L -nv |awk ' { if($2 != 0 )} { print $0 }'
awk '$2>0{print $0}'
条件没必要放在{}里面。

iptables -nvL|awk '{if ($1~/[1-9]/) print $0}'

看错,把$1 改成$2 即可

谢谢楼上两位,都成功了。
是我语法的问题, awk 没系统学过,临时去百度了找了点资料,不过看的几个贴都没有说基本语法。
iptables -L -nv |awk ' { if($2 > 0 ) print $0 }' 这样也可以了。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服