范围内日期的输出格式,带bash
我试图使用bash生成一个起始点和结束点之间的日期和时间列表 我希望输出为mm/dd/yyyy hh:mm格式 在命令行上,命令:范围内日期的输出格式,带bash,bash,date,Bash,Date,我试图使用bash生成一个起始点和结束点之间的日期和时间列表 我希望输出为mm/dd/yyyy hh:mm格式 在命令行上,命令: date +"%m/%d/%Y %H:%M" 生成我要查找的输出 当我使用当前被注释掉的行时,我得到一个错误 date: extra operand ‘%H:%M’ Try 'date --help' for more information. 我不知道如何修改脚本以生成我正在寻找的输出 DATE=date #FORMAT="%m/%d/%Y %H:%M" FO
date +"%m/%d/%Y %H:%M"
生成我要查找的输出
当我使用当前被注释掉的行时,我得到一个错误
date: extra operand ‘%H:%M’
Try 'date --help' for more information.
我不知道如何修改脚本以生成我正在寻找的输出
DATE=date
#FORMAT="%m/%d/%Y %H:%M"
FORMAT="%m/%d/%Y"
start=`$DATE +$FORMAT -d "2013-05-06"`
end=`$DATE +$FORMAT -d "2013-09-16"`
now=$start
while [[ "$now" < "$end" ]] ; do
now=`$DATE +$FORMAT -d "$now + 1 day"`
echo "$now"
done
DATE=日期
#FORMAT=“%m/%d/%Y%H:%m”
FORMAT=“%m/%d/%Y”
开始=`$DATE+$FORMAT-d“2013-05-06”`
end=`$DATE+$FORMAT-d“2013-09-16”`
现在=$start
而[[“$now”<“$end”]];做
now=`$DATE+$FORMAT-d“$now+1天”`
回声“$now”
完成
我一直在尝试在开始和结束时间后添加一个00:00,但这不起作用
知道我的输出格式哪里出错了吗
代码来源:
当您使用
格式=“%m/%d/%Y%H:%m”
您需要引号,因为它包含空格,所以:
now=`$DATE +"$FORMAT" -d "$now + 1 day"`
此外,我认为你不能像那样比较日期。您可能需要时间戳:
date +%s
通常,最好使用
start=$(日期+“$格式”…)
,而不是使用反引号start=`date+“$格式”…`
。或者使用ISO 8601变体表示法:%Y/%m/%d%H:%m
,可以按字母数字顺序对其进行排序。ISO 8601将年份放在时间的前一天的前一个月,它的许多好处之一是,可以使用简单的字母数字排序将结果排序为日期顺序。我喜欢使用yyyy/mm/dd格式,但我尝试导入的应用程序希望使用指定的格式。不过,用简单的ls进行排序是很好的。当我用引号替换now行时,我仍然会得到关于额外操作数的相同错误。我使用的是:DATE=DATE FORMAT=“%m/%d/%Y%H:%m”#FORMAT=“%m/%d/%Y”start=$DATE+$FORMAT-d”2013-05-06“
end=$DATE+$FORMAT-d”2013-09-16”
now=$start而[[“$now”<“$end”]];立即执行=$DATE+“$FORMAT”-d“$now+1天”
\now=$DATE+$FORMAT-d“$now+1天”
echo“$now”done@CS3000911任何包含空格的格式都必须有引号