gpt4 book ai didi

linux - 如何计算 awk 中输出的实例数?

转载 作者:太空宇宙 更新时间:2023-11-04 11:27:15 24 4
gpt4 key购买 nike

长话短说

想法是:

awk '{
IP[$1]++;
}
END {
for(var in IP)
print IP[var]
}
}' getline < sockstat | awk '{print $2 "@" $3}' | grep -v '^PROCESS@PID'

我想计算输出中每个 block 的实例数 -> socks | awk '{print $2 "@"$3}' | grep -v '^PROCESS@PID'

看起来像:

ubuntu-geoip-pr@2382
chrome@2453
chrome@2453
chrome@2453
chrome@2453
chrome@2453
chrome@2453
chrome@2453
chrome@2453
rhythmbox@4759
rhythmbox@4759
rhythmbox@4759

最后,我想得到如下输出:

1
8
3

这对应于上一个输出中每个项目的出现次数。

完整问题:

sockstat 命令输出本地主机的一些网络统计信息。我首先从输出(分别为 PROCESS 和 PID)的第二列和第三列中打印出一个键,格式为 PROCESS@PID。然后,我想从该输出中计算每个唯一键的频率。一种方法是使用 awk getline 结构,但这似乎适用于文件,而且我无法让它直接从上述命令中提取输入。

我不想使用临时文件,因为那样会降低解决方案的优雅度。

最佳答案

sockstat | awk '{print $2 "@" $3}' | grep -v '^PROCESS@PID' | sort | uniq -c | awk '{print $1}'

关于linux - 如何计算 awk 中输出的实例数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13889509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com