计算每行中特定字符串的数量

计算每行中特定字符串的数量

我有一个 SNP 表,如下所示

A N N N N N N N N N N N
N C N N N C N N N N N N
N N N N N N N N N N N N
N C N N N C N N N N N N
N N N N N N N N N N N N
C C N N N N N N N N N N
C C N N N C C N N N N N
N N N N N N N N N N N N

我想统计每行的N总数?知道怎么做吗

答案1

awk

awk -F\N '{print NF-1}' infile

或者。

awk -F\N '$0=NF-1' infile

或者。

awk '{print gsub(/\<N\>/, "")}' infile

或者确定在哪一行:

awk -F\N '$0="line "NR": "NF-1' infile

答案2

如果您只想计算N每行中特定字符的出现次数,那么

perl -lne 'print tr/N//' infile

如果您想更严格,并计算完全由 string 组成的空白分隔列的数量N,那么

perl -alne 'print scalar grep { $_ eq "N" } @F' infile

相关内容