tcsh:打印日期2周前在shell中

时间:2013-03-03 06:37:03

标签: date tcsh

在OpenBSD的tcsh中,我需要在两周前打印一个日期。

E.g。如果今天是2013-03-02,我需要打印2013-02-16

2 个答案:

答案 0 :(得分:0)

tcsh似乎不允许执行嵌套命令,因此看起来必须使用ksh

date +%Y-%m-%d ; \
sh -c 'date -r $(expr $(date +%s) - $(expr 60 \* 60 \* 24 \* 14)) +%Y-%m-%d'
2013-03-02
2013-02-16

我们获取自UTC时代以来秒数的日期,并使用expr计算两周的秒数,减去,并将这些秒数传递回date -r参数。

除了使用1209600代替$(expr 60 \* 60 \* 24 \* 14)之外,不确定是否有更短的解决方案:

sh -c 'date -r $(expr $(date +%s) - 1209600) +%Y-%m-%d'

答案 1 :(得分:0)

这应该有效(它适用于GNU日期。我对OpenBSD不太熟悉。所以不确定它是否适合你)

date -d "now - 14 days" +%Y-%m-%d