gpt4 book ai didi

awk - 计算每列中的唯一出现次数

转载 作者:行者123 更新时间:2023-12-03 15:27:02 29 4
gpt4 key购买 nike

我有一个包含多列的文件,例如 $2$3 (直到 $32 )如

A refdevhet devdevhomo
B refdevhet refdevhet
C refrefhomo refdevhet
D devrefhet refdevhet
我需要分别计算每列中每个唯一元素的出现次数
所以我有
refdevhet  2 3
refrefhomo 1 0
devrefhet 1 0
devdevhomo 0 1
我尝试了几种变体
awk 'BEGIN {
FS=OFS="\t"
}

{
for(i=1; i<=32; i++) a[$i]++
}

END {
for (i in a) print i, a[i]
}' file
而是打印所选字段中唯一元素出现的累积总和。

最佳答案

这是一个解决方案:

BEGIN {
FS=OFS="\t"
}
{
if (NF>mxf) mxf = NF;
for(i=1; i<=NF; i++) {ws[$i]=1; c[$i,i]++}
}
END {
for (w in ws) {
printf "%s", w
for (i=1;i<=mxf;i++) printf "%s%d", OFS, c[w,i];
print ""
}
}
请注意,解决方案是通用的。它也将包括第一列。要省略第一列,请更改 i=1i=2在两个地方。

关于awk - 计算每列中的唯一出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65080279/

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