如何将 14/Jul/2015 转换为 14-08-2015

如何将 14/Jul/2015 转换为 14-08-2015

我怎样才能转换14/Jul/201514-08-2015

它说是invalid date format因为Jul元素,但如果我放的07话它就可以正常工作。

我已经尝试过这个:

echo "Please enter the date: "
read X (here X is 14/Jul/2015)
a= date --date=$X '+%d-%b-%y'
echo "$a"

答案1

如果$x包含14/Jul/2015,则使用:

date -d "${x//\//-}" '+%d-%m-%Y'

它将打印:

14-07-2015

date实用程序无法识别斜杠分隔的字符串,因此您必须将其删除并用破折号 ( -) 替换。

答案2

您的问题不在于Jul,而是在于/,因此使用例如参数替换机制删除它们:

echo "Please enter the date: "
read X
a=$(date --date="${X//\//-}" '+%d-%b-%y')
echo "$a"

请注意,您的变量分配也是错误的(后面不能有空格=)并且命令替换应该用 括起来$()

相关内容