ファイルの特定の列への出力リダイレクト

ファイルの特定の列への出力リダイレクト

私のスクリプトは1日に約100個のクエリを実行し、各クエリは値出力(数値)を生成します。現在、各クエリの値を複数のファイルに出力しており、毎日の出力をクエリの対応するファイルの一番下に追加しています。

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

私が望むのは、各クエリの列を含む単一のファイルを作成し、それに応じて結果を追加することです。

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

私の現在のクエリ:

            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"

ベストアンサー1

OPが私がコメントで言及した動作を確認すると仮定すると、次のスクリプトが機能するはずです。

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")

すべての入力ファイル名を1行に1つずつ別々のファイル「list.txt」にリストする方が簡単になると思います。

おすすめ記事