我每天在脚本中运行大约 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”中会更容易,每行一个文件。