compara colunas em um arquivo e imprime a contagem de correspondências

0

Eu tenho um arquivo CSV que contém duas colunas. Quero comparar as duas colunas e imprimir o número de correspondências.

file1

M,M
A,M
A,A
M,A

Resultado esperado:

Se as primeiras colunas da primeira linha forem as mesmas, eu quero imprimir a segunda coluna no arquivo de saída, ou seja,

M (for first line)
0 (for second line not same, zero value)
A (for third line)
0 (for fourth line not same, zero value)
    
por Rincy Raphael 26.05.2014 / 06:25

4 respostas

3

awk -F , '{ if ($1 == $2) print $2; else print 0; }' inputfile
    
por 26.05.2014 / 06:33
1
awk -F, '!/^$/ && $1 == $2 { numMatch++ }; END { print numMatch }' YourFile
    
por 26.05.2014 / 06:53
1

com GNU grep :

$ grep -cP '(.+) ' file
2

Com sua entrada atualizada:

$ grep -cP '(.+),' file    
2

Atualizado

com awk :

$ awk -F',' '{print $1 == $2 ? $2 : 0}' file
M
0
A
0

Se você puder usar perl :

$ perl -F',' -anle 'print $F[0] eq $F[1] ? $F[1] : 0' file
M
0
A
0
    
por 26.05.2014 / 06:43
1

Tente este comando awk ,

awk -F, '!/^$/ {if($1==$2) {print $2} else {print "0"}}' file
    
por 26.05.2014 / 07:36