将输出重定向到文件中的特定列

将输出重定向到文件中的特定列

我每天在脚本中运行大约 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")

我认为将所有输入文件名列出到一个单独的文件“list.txt”中会更容易,每行一个文件。

相关内容