Redirecionar saída para coluna específica no arquivo

0

Diariamente, estou executando aproximadamente 100 consultas em um script, cada uma produzindo uma saída de valor único (um número). No momento, estou exibindo o valor de cada consulta para vários arquivos, anexando a saída de cada dia à parte inferior do arquivo correspondente da consulta:

query1 goes to file1
date value
Jan-01 35
Jan-02 74
query2 goes to file2
date value
Jan-01 834
Jan-02 342
etc

O que eu gostaria é criar um único arquivo que contenha uma coluna para cada consulta e acrescentar os resultados de acordo:

Date Query1 Query2 etc
Jan01 35 834 etc
Jan02 74 342 etc

Minha consulta atual:

            query 'yesterday' direct | awk '$1=="FA"{count++}END{print count}' > /x/2018/files/"$file1"
            query 'yesterday' direct | awk '$1=="FM"{count++}END{print count}' > /x/2018/files/"$file2"
            query 'yesterday' direct | awk '$1=="FT"{count++}END{print count}' > /x/2018/files/"$file3"
    
por Steve 03.04.2018 / 15:48

1 resposta

0

Supondo que o OP confirme o comportamento que mencionei nos comentários, esse script deve funcionar:

awk '
     FNR != 1 { sub("-", "", $1); dates[$1] = dates[$1] FS $2 }
     END {
         for(i in ARGV) h = h FS "Query"i; sub(" Query0", "Date", h); print h
         for(d in dates) print d dates[d]
     }
' $(cat "list.txt")

Eu pensei que seria mais fácil listar todos os nomes dos arquivos de entrada em um arquivo separado "list.txt", um arquivo por linha.

    
por 04.04.2018 / 05:59

Tags