2015-10-07 103 views
0


在计算日期时需要unix shell脚本的帮助。Unix Shell脚本 - 根据给定日期计算上周的日期

我将获取日期值(例如:20150908)作为参数,现在在我需要计算7天前日期(20150908 -7)的脚本内。

类似如下: 日期= 20150908
lastweek_date = 20150908 - 7 --->这应该输出20150901

有人能帮助我在此。

感谢

回答

2

随着GNU日期,我们可以减去一七

$ date -d "20150908 - 1 week" '+%Y%m%d' 
20150901 

另外,我们可以减去7天:

$ date -d "20150908 - 7 days" '+%Y%m%d' 
20150901 

而且,表明这个工程在本月界限:

$ date -d "20150901 - 1 week" '+%Y%m%d' 
20150825 

此解决方案是而不是兼容OSX/BSD。

0

一个星期是604800秒长,所以得到的秒数,因为在便携式和POSIX兼容时尚的时代,并用它来计算日期1个星期前做如下:

PRESENT=$(date +%s) 

WEEKAGO=$((PRESENT - 604800)) 

printf "%s\n" "$WEEKAGO"