awk '
{
for (i=1;i<=NF;++i)
if ($i == 1) ++one[i]
else if ($i == 0) ++zero[i]
}
END {
for (i=1;i<=NF;++i)
c += (one[i]>0 && zero[i]>0)
print c
}' file
Isso conta os zeros e uns em dois arrays separados, one
e zero
. Estes têm uma entrada por coluna no arquivo de entrada.
No final, a variável c
será a soma do número de colunas que tem pelo menos um 1
e um 0
. O código assume que o número de colunas na última linha de entrada é o mesmo que nas outras linhas dos dados de entrada.
A saída disso com os dados de exemplo fornecidos é 3
.