linux 统计TCP 连接各状态总数

netstat  -n|awk '/^tcp/ {++s[$NF]} END {for(k in s) print k, s[k]}'

以前经常只是从笔记中复制下, 这次打算 研究下 awk 语法 。

下面稍微分析下上面的awk 语句

/^tcp/   正则语法,  以 tcp 开始的行

{++s[$NF]}  s为一个数组,对不同状态求和

{for(k in s) print k, s[k]}   输出s数组

$NF 是 awk  内建变量 这里统计重点。下面说明下这个变量

NF输出每行的字段数

$NF 取得每行相应字段

$1  取得每行第一段数据

本地演示

[root@localhost ~]# cat cc.txt 

1    a    a1

2    b    b2

3    c    c3

[root@localhost ~]# cat cc.txt |awk '{print NF}'

3

3

3

[root@localhost ~]# cat cc.txt |awk '{print $NF}'

a1

b2

c3

[root@localhost ~]# cat cc.txt |awk '{print $3}'

a1

b2

c3

 

了解了 NF, 以后对于这样的统计可以修改NF 这里的达到自己想要的统计

posted @ 2019-03-25 08:22  做想其成  阅读(615)  评论(0编辑  收藏  举报