我需要从下一个星期六开始创建一个文件的当前日期。例如,在linux上:
date +%Y%m%d -d saturday
此返回 20160430 ,下一个星期六,当前日期为2016年4月25日。那是我想要的。
我在Unix上需要相同的结果(或类似的东西)( SunOS 5.10 )。如果我执行相同的命令,则返回的是当前日期 20160425
还有另一种方法,例如使用命令cal?我试过但是回到第一个星期六。命令:
cal | grep -v 2016 |grep -v Th | head -3 | head -1 | sed 's|^.*\([0-9]\)$|\1|g'
那么,有一种方法可以使用cal命令从当前日期开始到达下周六吗?
感谢您的帮助!
答案 0 :(得分:1)
您可以使用以下命令获取当天:
cal -s | tail -n +2 | grep `date +%d` | cut -d' ' -f 7
打印当月的日历,从星期日开始的周数,剥去年份行,grep
是今天的日期行,并获取其第7列,即您的星期六月份日期。
现在这里有一个小脚本来计算其余部分。
#!/bin/sh
TODAY=$(date +%d)
DAY=$(cal -s | tail -n +2 | grep ${TODAY} | cut -d' ' -f 7)
MONTH=$(date +%m)
YEAR=$(date +%Y)
if [[ $DAY -lt $TODAY ]]; then
# Saturday is next month
let MONTH=MONTH+1
if [[ $MONTH -eq 13 ]]; then
# Saturday is next year
let YEAR=YEAR+1
fi
fi
echo $YEAR$MONTH$DAY