输出每个IP的网络连接数,是作很多事情的第一步:
netstat -nat | awk ‘{print $5}‘ | cut -d: -f1 | sort | uniq -c | sort -n
netstat -nat|awk ‘{print $5}‘|awk -F : ‘{print $1}‘|awk ‘{a[$1]++}END{for(i in a)print a[i],i}‘|sort -n
再试试AWK文件功能:
awk -f cal.awk mawk.txt
awk脚本
在上面我们可以看到一个END关键字。END的意思是“处理完所有的行的标识”,即然说到了END就有必要介绍一下BEGIN,这两个关键字意味着执行前和执行后的意思,语法如下:
- BEGIN{ 这里面放的是执行前的语句 }
- END {这里面放的是处理完所有的行后要执行的语句 }
- {这里面放的是处理每一行时要执行的语句}
为了说清楚这个事,我们来看看下面的示例:
假设有这么一个文件(学生成绩表):
1 2 3 4 5 6 |
|
我们的awk脚本如下(我没有写有命令行上是因为命令行上不易读,另外也在介绍另一种用法):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
我们来看一下执行结果:(也可以这样运行 ./cal.awk score.txt)
1 2 3 4 5 6 7 8 9 10 11 |
|