gpt4 book ai didi

linux - 对 iptables 列表输出的字节求和

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:49:00 26 4
gpt4 key购买 nike

允许打印 num-bytes。

我一直以来的最佳尝试

sudo iptables -L -n -v -x | grep -i accept

这会给我一个很大的规则列表,包括第二列中的字节数。不幸的是,仅获取第二列非常困难。

一种选择是将其通过管道传输到一个文件中,然后对该文件使用 cut,但目标是在尽可能少的操作中完成。任何帮助,将不胜感激。

最佳答案

这个 bash 命令将第二列相加:

c=0; while read a nbyte rest; do ((c+=nbyte)); done < <(sudo iptables -L -n -v -x | grep -i accept); echo $c

或者,写在多行上:

c=0
while read a nbyte rest
do
((c+=nbyte))
done < <(sudo iptables -L -n -v -x | grep -i accept)
echo $c

工作原理

  • c=0

    这会将计数初始化为零。

  • while read a nbyte rest; do

    这会读取一行输入并将第一列分配给 a , 第二个 nbyte ,以及所有剩余的列到 rest .

  • ((c+=nbyte))

    这会将值添加到 nbyte 中至 c .如果nbyte包含一个字符串,而不是一个数字,bash 有助于将该字符串视为零。

  • done < <(sudo iptables -L -n -v -x | grep -i accept)

    这就完成了 while循环并通过进程替换为其提供输入。

  • echo $c

    这会显示结果。

关于linux - 对 iptables 列表输出的字节求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33794622/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com