在 OpenBSD 上的 tcsh 中,我需要打印两周前的日期。
例如,如果今天是2013-03-02
,我需要2013-02-16
打印出来。
这应该可以工作(它适用于 GNU 日期。我对 OpenBSD 不是很熟悉。所以不确定它是否适合你)
date -d "now - 14 days" +%Y-%m-%d
它似乎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 中的 Epoch 以来的秒数获取日期,并使用 、减去以秒为单位计算两周,并使用参数expr
将这些秒传回。date
-r
不确定是否有更短的解决方案,除了使用1209600
代替$(expr 60 \* 60 \* 24 \* 14)
:
sh -c 'date -r $(expr $(date +%s) - 1209600) +%Y-%m-%d'