kwrl.net
当前位置:首页 >> 解释一下 Awk '/^tCp/ {++S[$NF]} END {For(A in S... >>

解释一下 Awk '/^tCp/ {++S[$NF]} END {For(A in S...

不是,后面的1是单个数字在每行出现的次数,你把S[a] 去掉只留下a 你就明白了。 {++S[$NF] 的意思是 统计每行最后一个出现的次数,至少一次,放入数组中。 其实这个代码不适合这个文件,看不出来效果。$NF的意思就是打印最后一行。 也没必要写个...

awk是一个强大的文字处理工具,这是我的awk学习笔记http://blog.uouo123.com/post/312.html awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'是把tcp开头的匹配出来,再把末尾那一列出现的次数进行汇总 TIME_WAIT 4 ESTABLISHED 2 这样...

awk '{a[$1" "$2]++} 以空格为分隔符,把第一段和第二段以空格连接起来加入到数组a里,并计出现次数 END{for(j in a) print a[j],j}' awk处理完信息后,输出a数组的全部内容,并输出出现的次数 这是个统计的操作

S是数组名字,awk中支持数组型变量,并且使用之前不需要申明。 所以上面的语句其实是对文本按照 ; 分列。并用分列后的数据组织了一个数组 数组的内容为该数据的第4列,当第4列为空时,为相应行第3列的值。

SUM += $1 sum默认初值为0。awk逐行处理,$1为每行的第一个字段,就是计算每行第一个字段的累加和。 END部分是处理完所有行后执行的。 print SUM 即打印最终的累加和

awk '{S[$1]}{for(i in S) print i}'是没读一行就输出一次S awk '{S[$1]}END{for(i in S) print i}'是读取完全部以后,再输出S

这个awk脚本里有两个大括号,第一个表示匹配到了关键字后才会执行print s;而第二个没有限定,即每一行都会执行s=$0。举个例子,文件abc总共三行,如下: a b c 执行命令awk'/c/{print s}{s=$0}' abc 输出结果为c 的前一行 b,分析如下: 第一行...

-F/ 字段分隔符设为/ 将输入文本流分割为多个字段进行处理 OFS="/" 设置输出时的字段分隔符为/ $NF="" 将最后一个字段内容设置为空,即去除每行的最后一个字段 最后通过print打印出来。 例如,一个文本内容为: a/b/c/d/e h/i/j/k/l/m 处理后的...

lx@LxUbuntu:~/bash/tmp$ cat tmp.sh #!/bin/bash netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 没问题呀 如果不行可以在命令前面加上 eval试试看 你都没试把, 这样可不好 直接netstat -n | awk '/^tcp/ {++S[$NF]} ...

BEGIN{OFS=FS=":"} ==>如你所说,将输出和输入分隔符设置为冒号,看来你知道这个,就不说了; NR==FNR{a[$1]=$2} ==>NR为当前所有已读入的行数,FNR为当前文件已读入的行数,那么意思很明显,"NR=FNR"就表示读取第一个文件(1.txt)的每行时,"a[$...

网站首页 | 网站地图
All rights reserved Powered by www.kwrl.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com