我必须创建一个Shell脚本,其中一个参数将是dd/mm/yyyy格式的日期。我的问题是,如何检查作为参数传递的日期是否真的遵循此日期格式?我尝试使用grep命令,如下所示:
if echo "$1" | grep -q '^[0-3][0-9]/[0-1][0-9]/[0-9]\{4\}$'但是它没有给出正确的格式,因为例如,一天可以是33,34,(.),这不是真正正确的格式。有人知道一些可以真正检查所传递的日期是否真的遵循dd/mm/yyyy格式的东西吗?
发布于 2014-03-18 06:28:55
区块报价
DATE = "$*"
[[ "${DATE}" != @(((([123][0]|[012][1-9])|3[1])?([ \/._-])(0[13578]|1[02])?([ \/._-])(19|20)[0-9][0-9])|(([123][0]|[012][1-9])?([ \/._-])\
(0[469]|11)?([ \/._-])(19|20)[0-9][0-9])|(([12][0]|[01][1-9]|2[1-8])?([ \/._-])02?([ \/._-])(19|20)[0-9][0-9])|(29?([ \/._-])02?([ \/._-])\
(19|20(0[48]|[2468][048]|[13579][26])))) ]] && echo error || echo good)https://stackoverflow.com/questions/18731346
复制相似问题