Contar ocorrências de valor da coluna csv em outros arquivos e anexar como uma nova coluna

Contar ocorrências de valor da coluna csv em outros arquivos e anexar como uma nova coluna

posso fazer isso funcionar com ferramentas básicas de shell (sem Python ou Perl)?

ENTRADA1:

file1.csv
    John,Doe,[email protected]
    Andy,Barry,[email protected]
    Mary,,[email protected]

contar ocorrências de e-mails da 3ª coluna, arquivo1 em INPUT2:

file2.log
    [email protected]&fghfgh
    asdda&[email protected]
    [email protected]&werewr

SAÍDA desejada:

result.csv
    John,Doe,[email protected],0
    Andy,Barry,[email protected],2
    Mary,,[email protected],1

muito obrigado!

Responder1

Você não forneceu uma entrada válida, então usei isto:

John,Doe,[email protected]
Andy,Barry,[email protected]
Mary,,[email protected]

Para o qual o seguinte awk one-liner fornece os resultados esperados:

awk -F, '{l[NR]=$0;f[NR]=$3;c[$3]++}END{for(i=1;i<=NR;i++)print l[i] "," c[f[i]]}'

O problema aqui é que sua tarefa requer duas passagens. (f[] é apenas uma conveniência para evitar manter todo o conteúdo analisado ou analisá-lo novamente no final.) Mas como não entendo por que você descartou python ou perl (elessãoferramentas básicas de shell), talvez você também não considere um jogo justo...

informação relacionada