微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何合并来自具有不一致“日期时间”的不同文件的数据值?

如何解决如何合并来自具有不一致“日期时间”的不同文件的数据值?

我必须将 2 个文件与数据从 5 月到 9 月合并,为期 10 年。在第一个文件中,我有 30 分钟间隔的数据(两列 - 一个是日期时间),并且日期时间不一致。第二个文件的数据较少,但有 4 列 - 其中一个是 Datetime,因为它是 3 小时的时间段,Datetime 也是不一致的。到目前为止,我尝试了以下操作:

awk 'FNR==NR{A[$1]=$NF;next} FNR!=NR && FNR>1{Q=$1;$0=(Q in A)?$0 FS A[$1]:$0 FS;print;next} {print}' FS="\t"  Synop.txt Gnss.txt  > new.dat 

但结果是我没有添加3列而是只有一列,否则我认为它与Datetime匹配。

示例如下:

文件 1:

Datetime        IWV
2012-05-07 15:00:00     9.74
2012-05-07 15:30:00     9.84
2012-05-07 16:00:00     9.95
2012-05-07 16:30:00     10.11
2012-05-07 17:00:00     10.24
2012-05-07 17:30:00     10.37
2012-05-07 18:00:00     10.46

文件 2:

Datetime        Phenomena       Past_Phenomena_1        Precipitation_3h
2012-05-07 18:00:00     17      9       0.1
2012-05-08 15:00:00     29      9       0
2012-05-10 15:00:00     95      9       0
2012-05-22 15:00:00     95      9       0
2012-05-24 12:00:00     17      9       0
2012-06-01 15:00:00     17      9       0
2012-06-04 15:00:00     17      9       0
2012-06-05 06:00:00     17      9       4.2
2012-06-11 15:00:00     17      9       0

我想保留“IWV”数据和日期时间并添加(如果有)Phenomena,Past_Phenomena_1,Precipitation_3h。

预期结果:

2012-05-07 15:00:00   9.74
2012-05-07 15:30:00   9.84
2012-05-07 16:00:00   9.95
2012-05-07 16:30:00   10.11
2012-05-07 17:00:00   10.24
2012-05-07 17:30:00   10.37
2012-05-07 18:00:00   10.46   17   9   0.1

解决方法

awk 'BEGIN{ FS=OFS="\t" }
NR==FNR{ Q=$1; $1=""; Datetime[Q]=$0; next }
FNR>1  { print $0 Datetime[$1] }' file2 file1

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?