我正在尝试输出bytes
iptables 的值。我尝试了以下操作:
sudo iptables -nvL INPUT --line-numbers
我得到了以下输出:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 316 18844 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW limit: avg 60/sec burst 20
2 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW
我也尝试过:
sudo iptables -nvL INPUT --line-numbers | grep ACCEPT
但我获得的不仅仅是价值bytes
。
bytes
我不知道如何从这个命令中提取值(18844 和 0)。
我希望你可以帮助我。
答案1
看起来好像bytes
值是第三列,因此您可以写:
iptables -nvL INPUT | awk '/policy/ {next} /ACCEPT/ {print $3}'
鉴于上面的示例输出,将产生:
18844
该 awk 脚本 () 中的第一个模式/policy/ {next}
是跳过第一行,否则将匹配ACCEPT
。