【发布时间】:2021-09-11 09:19:36
【问题描述】:
早上好。我有两个名为 a.txt 和 b.txt 的文本文件,其中包含以下格式的数据
year mn dt hr:mn:sec
xxxx-xx-xx xx:xx:xx.xxxxxx
我的 a.txt 文件是
2019-01-01 00:58:49.925000
2019-01-01 01:48:39.665000
2019-01-01 15:42:18.955000
2019-01-01 18:40:49.915000
2019-01-01 18:47:00.735000
2019-01-01 21:07:49.255000
2019-01-01 21:52:29.055000
2019-01-02 03:19:54.955000
2019-01-02 07:41:27.845000
2019-01-02 18:52:32.995000
而b.txt文件包含
2019-01-01 00:58:50.565000
2019-01-01 01:48:39.915000
2019-01-01 04:09:53.705000
2019-01-01 06:28:07.515000
2019-01-01 15:43:13.455000
2019-01-01 18:40:53.255000
2019-01-01 18:47:04.005000
2019-01-01 18:47:03.975000
2019-01-01 21:07:53.725000
2019-01-01 21:52:37.195000
2019-01-02 07:41:34.255000
2019-01-02 19:41:08.865000
此外,每个文本文件(a.txt 和 b.txt)都包含 14 行,包括空格。
现在我想以秒为单位计算每行 (a.txt-b.txt) 之间的时间差,并且我想将这些行附加到一个新的文本文件 c.txt,它应该只包含时间差在 3 到 18 秒之间的行.
我做了如下的事情:
#!/bin/sh
a=`cat a.txt`
b=`cat b.txt`
awk '{print $a-$b}'
【问题讨论】:
-
如果其中一个日期为空怎么办?例如,在示例文件的第三行中。
-
空白行呢?你想如何区分它们?
a.txt有 10 个日期,而b.txt有 12 个日期。 -
如果空结果应该为零
-
空结果是什么意思?空行?假设空白行的日期为 0?还是直接返回 0?
-
是的..我假设空行为零,因为行值不存在,其结果应该为零