Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UNIX Shell脚本(基于数字的减法)?_Shell_Unix_Date - Fatal编程技术网

UNIX Shell脚本(基于数字的减法)?

UNIX Shell脚本(基于数字的减法)?,shell,unix,date,Shell,Unix,Date,我有一个输入,比如2013年7月2日(可能是任何日期)。我想检索输入日期后2天的日期。怎么做?是你的朋友: date -d "2013-01-01 -2 days" +"%Y-%m-%d" 这将打印出带有-d选项的2012-12-30日期。它能理解相对日期,即使使用像这样的通用语言 日期-d“两天前”。 就你的情况来说 date -d "2013-07-01 -2 days" 就足够了。如果您希望输出的格式与输入的格式相同,即2013-07-02,请在传递到日期之前用-替换: $ in

我有一个输入,比如2013年7月2日(可能是任何日期)。我想检索输入日期后2天的日期。怎么做?

是你的朋友:

date -d "2013-01-01 -2 days" +"%Y-%m-%d"

这将打印出带有
-d
选项的
2012-12-30

日期
。它能理解相对日期,即使使用像这样的通用语言
日期-d“两天前”
。 就你的情况来说

  date -d "2013-07-01 -2 days" 

就足够了。

如果您希望输出的格式与输入的格式相同,即
2013-07-02
,请在传递到日期之前用
-
替换

$ inputdate='2013_07_02';
$ date --date=${mydate//_/-}'-2 day' +'%Y_%m_%d'
2013_06_30

这比减法更复杂。。甚至比案件更复杂。。从1988年到现在的两天是多少?现在,我相当确定有一些日期感知命令(作为最后的手段,Perl或Python或诸如此类的命令可能是可用的),因此我将开始研究如何根据“真实”日期类型来处理它。。