1)计算 20110101 - 20110202 之间有多少天?
date -f <(seq 20110101 20110202) +%F 2>/dev/null | wc -l
[解析]
-f 参数从文件中读取每一行给 date 作为 +%F 日期输出,如果是错误的日期当然就会报错,这里屏蔽到错误信息。能输出的就是可用的日期了然后记数。
2)计算 20110101 - 20110202 之间有多少个工作日,排除周六和周日?
date -f <(seq -f"%.f" 20110101 20110202) +%u 2>/dev/null | grep [1-5] | wc -l
[解析]
同样只输入星期几,然后用 grep 过滤到6和7。记数。