Se $x
contiver 14/Jul/2015
, use isso:
date -d "${x//\//-}" '+%d-%m-%Y'
imprimirá:
14-07-2015
A date
utillity não entende a string separada por barra, então você precisa removê-la e substituí-la por um traço ( -
).
Como posso converter 14/Jul/2015
em 14-08-2015
?
Ele está dizendo invalid date format
por causa do elemento Jul
, mas se eu colocar 07
, ele funcionará bem.
Eu tentei isso:
echo "Please enter the date: "
read X (here X is 14/Jul/2015)
a= date --date=$X '+%d-%b-%y'
echo "$a"
Se $x
contiver 14/Jul/2015
, use isso:
date -d "${x//\//-}" '+%d-%m-%Y'
imprimirá:
14-07-2015
A date
utillity não entende a string separada por barra, então você precisa removê-la e substituí-la por um traço ( -
).
Seu problema não é com Jul
, mas com /
, portanto, remova-os usando, por exemplo, o mecanismo de substituição de parâmetro:
echo "Please enter the date: "
read X
a=$(date --date="${X//\//-}" '+%d-%b-%y')
echo "$a"
Por favor, note que sua atribuição de variável também estava errada (não deve haver espaço após =
) e a substituição de comando deve estar entre $()
.
Tags command-line date