我有两种格式的时间戳:
时间戳1(变量 - RunStartDate
):Thu May 3 14:12:54 CDT 2018
时间戳2(变量 - RunEndDate
):Thu May 3 18:11:46 CDT 2018
我想要UNIX shell中这两个时间戳之间的小时数差异。 (即RunEndDate
- RunStartDate
小时)
请帮助,我是UNIX的新手,当我试图减去这两个时,它给我带来了错误。
答案 0 :(得分:2)
您可以在此处选择一些选项,例如调用Perl或Python以及使用日期/时间库为您进行数学运算。另一种选择是使用date
程序将日期转换为秒,减去值,然后转换回小时。不幸的是,你不能在Bash中进行浮点数学运算,因此我们也必须召唤一个帮助程序来做这件事。
START=$(date -d "$RunStartDate" +"%s")
END=$(date -d "$RunEndDate" +"%s")
HOURS=$(bc -l <<< "($END - $START) / 3600")
请注意,这仅适用于GNU系统(例如Linux)。