在OpenBSD的tcsh中,我需要在两周前打印一个日期。
E.g。如果今天是2013-03-02
,我需要打印2013-02-16
。
答案 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