gpt4 book ai didi

awk 打印匹配字段中出现的次数最多

转载 作者:行者123 更新时间:2023-12-04 13:41:37 26 4
gpt4 key购买 nike

在下面的 awk 中,我在 : 上拆分 $7,然后计算每一行或 NM_xxxx。如果每行的 $1 值都相同,则打印与匹配的 $1 值出现次数最多的 $7awk 似乎很接近,但我不确定发生了什么。我包括了一个描述以及我认为正在发生的事情。谢谢 :)。

awk

awk -F'[\t:]' '{count[$7]++} END {for (word in count) print $1, word, count[word]}' file

描述

awk -F'[\t:]'   ---- regex for FS `\t` and split `:`
'{count[$7]++} ---- count each `line in $7` and read into array count
{for (word in count) ---- start loop using array count and read each line in array word
print $1, word, count[word]} ---- print desired fields `$1, [word] (only print count[word] to confirm, it is not needed)

文件

A2M 2   18171   33210   coding  na  NM_000014.5:c.2998A>G   c.2998A>G
A2M 2 18172 33211 coding na NM_000014.5:c.2915G>A c.2915G>A
A2M 2 18173 33212 coding na NM_000014.4:c.2125+1_2126-1del c.2125+1_2126-1del
A2M 2 18174 33213 coding na NM_000014.5:c.2111G>A c.2111G>A
A2M 2 402328 390084 coding na NM_000014.5:c.2126-6_2126-2delCCATA
A4GALT 53947 2692 17731 coding na NM_017436.5:c.548T>A c.548T>A
A4GALT 53947 2693 17732 coding na NM_017436.5:c.752C>T c.752C>T
A4GALT 53947 2694 17733 coding na NM_017436.6:c.783G>A c.783G>A
A4GALT 53947 2695 17734 coding na NM_017436.6:c.560G>A c.560G>A
A4GALT 53947 2696 17735 coding na NM_017436.6:c.240_242delCTT
A4GALT 53947 2697 17736 coding na NM_017436.6:c.1029dupC c.1029dupC
A4GALT 53947 39437 48036 coding na NM_017436.6:c.631C>G c.631C>G

电流输出

2
NM_017436.6 5
NM_000014.4 1
NM_000014.5 4
NM_017436.5 2

期望的输出

A2M NM_000014.5
A4GALT NM_017436.6

最佳答案

使用 GNU awk 实现真正的多维数组:

$ cat tst.awk
BEGIN { FS="[\t:]" }
{
cnt[$1][$7]++
max[$1] = (max[$1] > cnt[$1][$7] ? max[$1] : cnt[$1][$7])
}
END {
for (word in cnt) {
for (val in cnt[word]) {
if (cnt[word][val] == max[word]) {
print word, val
}
}
}
}

$ awk -f tst.awk file
A4GALT NM_017436.6
A2M NM_000014.5

关于awk 打印匹配字段中出现的次数最多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44568084/

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