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

Date tcsh:在shell中打印2周前的日期,date,tcsh,Date,Tcsh,在OpenBSD上的tcsh中,我需要打印两周前的日期 例如,如果今天是2013-03-02,我需要打印出2013-02-16。似乎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以秒为单位计算

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


例如,如果今天是
2013-03-02
,我需要打印出
2013-02-16

似乎
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
以秒为单位计算两周,减去这些秒数,然后使用
-r
参数将这些秒数传递回
日期

不确定是否有比使用
1209600
代替
$(expr 60\*60\*24\*14)更短的解决方案

这应该行得通(它在GNU日期起作用。我对OpenBSD不是很熟悉。所以不确定它是否适合您)


不,它显然不起作用。但对于GNU/Linux用户来说,这是一个有趣的选择!我花了10多分钟来理解为什么它不能在我的shell中提供输出。。然后我看到你的评论…:(
sh -c 'date -r $(expr $(date +%s) - 1209600) +%Y-%m-%d'
date -d "now - 14 days" +%Y-%m-%d