Será mais fácil combinar linhas do que as colunas. Então, por exemplo, usando rs
para transpor o conteúdo de ambos os arquivos
$ rs -T <File1 | grep -Ff- <(rs -T <File2) | rs -T
0
0
0
0
1
1
0
0
0
0
Para contar ocorrências, não é necessário salvá-las em um arquivo - você pode usar grep -c
:
$ rs -T <File1 | grep -cxFf- <(rs -T <File2)
1
Ou se octave
estiver disponível, você pode considerar usar isso, onde é possível fazer uma subtração em vetor em coluna do vetor a partir da matriz e, em seguida, contar onde todas as linhas são zero:
x = dlmread('File1',' ');
A = dlmread('File2',' ');
sum(all(~(A-x)))
Isso pode funcionar melhor para arquivos grandes - se você precisar executá-lo de forma não interativa, poderá fazê-lo, por exemplo, a partir do shell usando um documento here:
$ octave --no-gui --norc --quiet << \EOF
x = dlmread('File1','\t');
A = dlmread('File2','\t');
sum(all(~(A-x)))
EOF
(delimitadores alterados para guias com base em comentários).
Se a sua versão do Octave não suportar a expansão implícita de matrizes com tamanhos compatíveis, talvez seja necessário alterar A-x
para bsxfun(@minus,A,x)
ou A-repmat(x,1,size(A,2))