我正在使用Bash shell。比较两个文件,打印具有常见第一列和第二列的行并创建新表
我有两个文本文件。
的第一个的第一行:
Datum Diffuse Radiation Global Radidation Direkte_Strahlung Minute
26.02.13 12:23 240,5 783,5 543 23
26.02.13 12:24 243,8 752 508,2 24
26.02.13 12:25 248,9 660 411,1 25
26.02.13 12:26 262,2 653,7 391,5 26
26.02.13 12:27 281,3 612,4 331,1 27
26.02.13 12:28 315,1 864,8 549,7 28
该第二文件的第一行:
Date Time (past local midnight) Solar Zenith Angle (deg) Cos_Zenitwinkel Luftmasse
26.02.13 0:00:00 161,7649831 -0,949780987 -1,052874308
26.02.13 0:06:00 161,7258048 -0,949566797 -1,053111801
26.02.13 0:12:00 161,5769749 -0,948749087 -1,054019459
26.02.13 0:18:00 161,3211217 -0,947328405 -1,055600143
26.02.13 0:24:00 160,9625742 -0,945305712 -1,057858836
两个文本文件与制表符分隔。在第一个文件只是日期和小时之间的空间 - 我的问题是:我想从每个文件中得到这些行作为输出与普通日期&小时。
我的想法是逐行比较文件与命令,得到一个txt.file作为输出与所有日期&小时他们有共同点 - >common_date.file
。
然后我比较common_date.file
与第一个文件,并获得一个新文件,只有common_date.file
的日期&小时(但整行打印!)。然后我对第二个文件做同样的事情。
我知道有命令-diff
获取两个文件的区别。
我已经试过grep -F -x -f
但它也没有工作。我认为它应该与grep一起工作!
也许我解释一下我的愿望是这样:
我想要得到的日期&小时他们所共有的两个新文件。所以这两个文件的长度是相等的,我可以用时间轴做一个绘图。
这两个文件有不同的时间格式。建议您使用您的预期数据提供更好的样本数据。 – anubhava
问题是,当我在第一个文件中使用sed -e's = = \ t = g'时,它不会将\ t作为制表符 - 所以我无法更改它。我尝试了一些其他制表符,但没有成功。 – Frosi
我会上传数据并发布链接,好吗? – Frosi