linux - 将三个数据文件连接成具有不同且相同时间步长的矩阵

标签 linux bash join awk gawk

我有三个包含数据和不同或相同时间步长的文件。我想使用 awk、join 或类似方法将它们合并到一个文件或矩阵中,如下例所示:

File1.txt

29.09.2016:01:10:32;4.01
29.09.2016:01:12:58;4.35
29.09.2016:01:16:01;4.52

File2.txt

29.09.2016:01:11:01;8.81
29.09.2016:01:15:58;9.02
29.09.2016:01:16:01;9.38

File3.txt

29.09.2016:01:09:01;0.56
29.09.2016:01:15:59;0.57
29.09.2016:01:16:01;0.48

输出:Matrix.txt

29.09.2016:01:09:01;-;-;0.56
29.09.2016:01:10:32;4.01;-;-
29.09.2016:01:11:01;-;8.81;-
29.09.2016:01:12:58;4.35;-;-
29.09.2016:01:15:58;-;9.02;-
29.09.2016:01:15:59;-;-;0.57
29.09.2016:01:16:01;4.52;9.38;0.48

最佳答案

使用join :

join -a 1 -a 2 -e '-' -o auto -t ';' File1.txt File2.txt | join -a 1 -a 2 -e '-' -o auto -t ';' - File3.txt

关于linux - 将三个数据文件连接成具有不同且相同时间步长的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39789027/

相关文章:

c - epoll_wait返回怎么样?它是否对所请求的 I/O 的文件描述进行排序?

Linux block 大小问题

linux - Apache 虚拟主机配置

Mysql select - 全部来自左侧且仅匹配右侧表

MySQL 表关系 - 如果字段有值则加入

linux - 不运行 Cypress 和 linux cron

linux - 无法将以空格分隔的文件添加到git

bash - 如何在 Makefile 中使用 eval

linux - Bash脚本在循环中设置变量

hibernate - 使用 HQL 仅连接第一行