como multiplicar coluna de um arquivo por coluna de outro arquivo?

1

Eu quero sua ajuda na multiplicação de colunas de um arquivo por coluna de outro outro arquivo em que ambos os arquivos tenham o mesmo número de colunas e linhas. Eu quero o script para multiplicar a primeira coluna do primeiro arquivo pela primeira coluna do segundo arquivo, a segunda coluna do primeiro arquivo ea segunda coluna do segundo arquivo e assim por diante.

Aqui estão os dados da minha amostra e o resultado necessário abaixo

arquivo1

2 3 4 4 . . . 
5 6 7 8 . . .
. . . . . . .

arquivo2

3 4 8 10 . . . 
5 10 5 9 . . .
. . . . . . . 

O arquivo de saída necessário será

arquivo1.file2

6 12 32 40 . . . 
25 60 35 72 . . . 
    
por AiB 28.08.2013 / 06:37

2 respostas

3

Isso deve ser feito. Observe que as linhas de ambos os arquivos têm o mesmo número de colunas.

awk '
    {
            getline file2_line <"file2";
            split(file2_line, fields_from_file2);

            cur = 1;
            while ( cur <= NF )
            {
                    printf("%s ", $cur * fields_from_file2[cur]);
                    cur++;
            }

            printf("\n");
    }
    ' file1
    
por 28.08.2013 / 07:06
3

Alternativamente:

paste file1 file2 | awk '{h=NF/2;for (i=1;i<=h;i++) $i=$i*$(i+h);NF=h};1'

(pressupõe que ambos os arquivos tenham o mesmo número de colunas e linhas)

    
por 28.08.2013 / 07:59