解释一下 awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}每个字段的意思

用这个列子说好了如果NF代表字段那最后应该是7才对啊还有最后怎么都是1呢?END前面的是查看并发吧后面是查看tcp连接数是这样吗?... 用这个列子说好了
如果NF代表字段 那最后应该是7 才对啊 还有最后怎么都是1呢?
END前面的是查看并发吧 后面是查看 tcp连接数 是这样吗?
展开
 我来答
小无谈旅游百科
高粉答主

2020-06-14 · 每个回答都超有意思的
知道小有建树答主
回答量:824
采纳率:98%
帮助的人:19.5万
展开全部

awK下标表示为字符串

用户可能见过其他语言的NTA[10];它表示一个包含10个元素的数组,下标为0,1,2,9

Awk的下标是字符串,在简单的英语中,字符串就像散列函数,比如["Hello"]='world',但我们称它们为数组

另外,请理解NF是字段的数量,字段的数量。例如,如果一行是helloWorld,那么NF就是2

但是添加$,即$NF表示第二个字段的内容,而$NF2表示world

现在如果我回到文本,++S[$NF],这有点像使用字典来计数文件

HelloWorld你好

所以++S[$NF]是S["hello"]=2,S["world"]=1

/^TCP/意味着对每一行进行常规匹配,因为netstat将为UDP生成行,所以我们将使用常规过滤

然后打印a,S[a],也就是2,hello1,world

扩展资料:

注意事项:

在字符串的末尾传递一个空字符串。打印函数不会在字符串末尾添加换行符,而是添加一个空字符串。

默认情况下打印末尾有换行符的行:

End = ""表示末尾不换行,使用空格。交互模式下,效果如下:> > > print (' a ') > > print (' a ', end = ' ') > > > print (' a ', end = '1234') a1234 > >0 >1。

力哥丶丶
2013-01-04
知道答主
回答量:25
采纳率:0%
帮助的人:16万
展开全部
不是,后面的1是单个数字在每行出现的次数,你把S[a] 去掉只留下a 你就明白了。
{++S[$NF] 的意思是 统计每行最后一个出现的次数,至少一次,放入数组中。

其实这个代码不适合这个文件,看不出来效果。$NF的意思就是打印最后一行。
也没必要写个数组。
[root@localhost ~]# awk '{print $1,$NF}' cc
tcp 3
tcp 4
tcp 5
tcp 6
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2418edc8c
2019-10-10
知道答主
回答量:13
采纳率:0%
帮助的人:1.1万
展开全部
awk下标采用字符串来表示
可能你在其它语言见过int a[10];这代表有10个元素的数组,下标为0,1,2,,,9
而awk的下标是字符串,说白了,像极了hash,比如a["hello"] = 'world',只不过我们称之为数组
同时,你要明白NF是字段数,number of field .比如某一行文件为 hello world,那么NF为2
但是加上$,即$NF就代表第二个字段的内容,那么$NF2 为world

现在回到正文,++S[$NF],就有点类似于,用字典统计文件
比如hello world hello
那么++S【$NF】的结果就是S【“hello”】 = 2,S["world"] = 1

/^tcp/ 表示对每一行进行正则匹配,因为我们netstat会产生udp的行,所以我们要用正则过滤

最后print a,S[a] 就很容易懂了,就是 2,hello 1,world
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lishuaijuly
推荐于2018-03-02 · TA获得超过114个赞
知道答主
回答量:142
采纳率:0%
帮助的人:86.9万
展开全部
NF是字段数,number of field .
$NF是最后一个字段,
END前面是把最后一个字段+1放到数组S中,END是把数组打印出来, 关联数组的key是最后一个字段的值,value都是1(因为默认值是0,++后是1),.
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
q_yangguangyou
2013-01-05 · TA获得超过171个赞
知道小有建树答主
回答量:372
采纳率:87%
帮助的人:77万
展开全部
1.awk for(a in S) 这种形式的数组分配是不固定的。
2.你只进行了数组初始化,下标为字段数,值为空,进行预加1后,值为1.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式