Compare três arquivos e imprima o maior valor

0

Eu tenho três arquivos. Todos eles tendo apenas uma coluna.

File1 
M
0
M
A

File2 
A
0
M
A

File3
M
0
A
A

compare cada linha nos três arquivos, ou seja, na primeira linha (M, A, M) daí a ocorrência máxima é M. O arquivo de saída deve conter M na primeira linha. da mesma forma para outras linhas nos três arquivos

Output file
M
0
M
A

alguém pode dizer o script awk para isso ....

    
por Rincy Raphael 26.05.2014 / 08:03

3 respostas

3

Tente algo como:

awk '$1"">A[FNR]{A[FNR]=$1} END{for(i=1; i<=FNR; i++)print A[i]}' file*

$1"" é usado para forçar $ 1 no contexto da string, para que seja feita uma comparação de strings.

    
por 26.05.2014 / 08:10
1

Com o GNU awk

paste  file{1..3} | awk '{n=split($0, a, "\t");
           asort(a,b,"@val_str_desc"); print b[1]}'
    
por 26.05.2014 / 17:04
1
paste file[123] |
while read -a values; do printf "%s\n" "${values[@]}" | sort | tail -1; done
    
por 27.05.2014 / 00:33