Shell 用特定格式减去日期
我一直在寻找一个解决我的shell日期减法问题的方法,但毫无乐趣,所以我来了。 我有一个日期格式,例如%m%d%H%m%S,即“0102231203”和第二个%Y%m%d%H%m%S,我可以从第二个日期中减去一年,然后做一个正常的减法,但当减法超过一天时,时间就不正确了。 这是我到目前为止所做的尝试 BTT=0102234500 TPP=0102233635(删除年份后) BT=Shell 用特定格式减去日期,shell,date,subtraction,Shell,Date,Subtraction,我一直在寻找一个解决我的shell日期减法问题的方法,但毫无乐趣,所以我来了。 我有一个日期格式,例如%m%d%H%m%S,即“0102231203”和第二个%Y%m%d%H%m%S,我可以从第二个日期中减去一年,然后做一个正常的减法,但当减法超过一天时,时间就不正确了。 这是我到目前为止所做的尝试 BTT=0102234500 TPP=0102233635(删除年份后) BT=date-d${BTT} TP=date-d${TPP} 及 BT=date-d$BTT+%m%d%H%m%S TP=
date-d${BTT}
TP=date-d${TPP}
及
BT=date-d$BTT+%m%d%H%m%S
TP=date+%m%d%H%m%S-d${TPP}
日期:无效日期“0102234500”
日期:无效日期“0102233635”
BT=date-d@${BTT}+%m%d%H%m%S
TP=date+%m%d%H%m%S-d@${TPP}
奇怪的输出
0329071355
0329072820
BT=date-d@${BTT}
TP=date-d@${TPP}
1973年3月29日星期四07:13:55英国夏令时
1973年3月29日星期四07:28:20英国夏令时
甚至将其更改为将年份添加到
BTT=20130102234500
TPP=20130102233635
BT=date-d@${BTT}
TP=date-d@${TPP}
7月19日星期五08:53:55 GMT 639867
星期五7月19日09:08:20格林尼治标准时间639867
我如何解决这个问题。
tnx日期的-d选项接受人类可读的字符串,因此如果您可以拥有完整的日期,您可以执行以下操作:
me@server:/tmp$ BTT=`date +"%Y-%m-%d %H:%M:%S"`
me@server:/tmp$ TPP=`date +"%Y-%m-%d %H:%M:%S"`
me@server:/tmp$ echo $((`date -d "$TPP" +%s`-`date -d "$BTT" +%s`))
3
使用您的数据:
me@server:/tmp$ BTT="2013-01-02 23:45:00"
me@server:/tmp$ TPP="2013-01-02 23:36:35"
me@server:/tmp$ echo $((`date -d "$BTT" +%s`-`date -d "$TPP" +%s`))
505
以秒为单位显示结果。1。这里有许多关于S.O.的问题与日期算术有关。2.使用适当的shell名称作为问题的标记,您将获得更好的帮助,即
csh
,bash
,ksh
。。。祝你好运