如何逐行添加grep输出编号.
我有以下输出文件
pkts bytes target prot opt in out source destination
0 0 RETURN 0 -- * * 0.0.0.0/0 192.168.1.117
0 0 RETURN 0 -- * * 192.168.0.1 0.0.0.0/0
0 0 RETURN 0 -- * * 0.0.0.0/0 192.168.0.1
375993 19581223 RETURN 0 -- * * 192.168.1.136 0.0.0.0/0
752537 1043650417 RETURN 0 -- * * 0.0.0.0/0 192.168.1.136
123 9348 RETURN 0 -- * * 192.168.1.100 0.0.0.0/0
121 9196 RETURN 0 -- * * 0.0.0.0/0 192.168.1.100
Run Code Online (Sandbox Code Playgroud)
我想为每个IP地址添加所有字节并将其存储为变量以进行进一步计算.
iptables -L RRDIPT -vnx -t filter | grep "192.168.1" | cut -d " " -f4
Run Code Online (Sandbox Code Playgroud)
给我空白和19581223,1043650417,9348和9196,但我正在努力添加输出.
谁能指导我?
以下脚本统计了每个目标IP的字节数.如果您想要每个源IP,则更$9改为$8
iptables -L ... | awk '!/destination/{a[$9]+=$2}END{for(item in a)printf("%s\tTotal bytes: %s\n",item,a[item])}'
Run Code Online (Sandbox Code Playgroud)
pkts bytes target prot opt in out source destination
0 1 RETURN 0 -- * * 0.0.0.0/0 192.168.1.117
0 2 RETURN 0 -- * * 192.168.0.1 0.0.0.0/0
0 3 RETURN 0 -- * * 0.0.0.0/0 192.168.0.1
0 4 RETURN 0 -- * * 0.0.0.0/0 192.168.1.117
0 5 RETURN 0 -- * * 192.168.0.1 0.0.0.0/0
0 6 RETURN 0 -- * * 0.0.0.0/0 192.168.1.117
0 7 RETURN 0 -- * * 192.168.0.1 0.0.0.0/0
Run Code Online (Sandbox Code Playgroud)
192.168.0.1 Total bytes: 3
0.0.0.0/0 Total bytes: 14
192.168.1.117 Total bytes: 11
Run Code Online (Sandbox Code Playgroud)