我试图输出输入文件中唯一文本的计数。它在$2中,但我似乎只能用下面的方法得到1的计数。谢谢:)。

awk '{sub(/:.*/,"",$2)} !seen[$5]++{unq++} END{print unq}' input.txt > output.txt

输入文件
chrX:48544112-48544235 **WAS**:exon.1;WAS:exon.4;WAS:exon.6 271.171
chr5:1282528-1282754 **TERT**:exon.1;TERT:exon.3 349.08
chrX:48547038-48547465 **WAS**:exon.1;WAS:exon.10;WAS:exon.2 42.459

期望输出
2

最佳答案

如果将字段分隔符重新定义为“冒号或空格”,则会简单得多

awk -F '[: ]' '!seen[$3]++ {n++} END {print n}' file

10-07 16:25