我有一个包含以下结构的多行的txt文件:
@HISEQ:XXX:8:1101:11058:2481 1:N:0:ATTCCTTTTCTTTCCC
@HISEQ:XXX:8:1101:11009:2489 1:N:0:ATCACGATTATTTCCC
@HISEQ:XXX:8:1101:1414:2364 1:N:0:GCCAATATCCTTTCCC
@HISEQ:XXX:8:1101:11009:2489 1:N:0:ATCACGATTATTTCCC
现在我想要了解最后一个&#39; <#39;
背后的模式在这种情况下,它将是:
ATTCCTTTTCTTTCCC
ATCACGATTATTTCCC
GCCAATATCCTTTCCC
ATCACGATTATTTCCC
然后,我想计算每个模式的找到次数。
这样的事情:
ATTCCTTTTCTTTCCC: 1
ATCACGATTATTTCCC: 2
GCCAATATCCTTTCCC: 1
这可以用bash完成吗?
答案 0 :(得分:0)
使用awk你可以这样做:
awk -F: '{print $NF; tok[$NF]++} END {
print "==== Uniques ==="; for (i in tok) print i, tok[i]}' file
ATTCCTTTTCTTTCCC
ATCACGATTATTTCCC
GCCAATATCCTTTCCC
ATCACGATTATTTCCC
==== Uniques ===
ATTCCTTTTCTTTCCC 1
GCCAATATCCTTTCCC 1
ATCACGATTATTTCCC 2
答案 1 :(得分:0)
您可以使用sed
删除:
之前的所有内容,然后使用uniq排序以计算出现次数:
sed 's/.*://' file | sort | uniq -c
答案 2 :(得分:0)
static int max(int a, int b) {
return (a > b)? a : b;
}