함수에 날짜를 변수로 전달하고 있습니다. 이 날짜를 다른 형식으로 변환하고 싶습니다. 예
DT=2015-12-08
DT
유닉스 로 변환하고 싶습니다 08-dec-2015
.
답변1
GNU 날짜를 가정합니다(즉, 내장되지 않은 Linux):
$ LC_TIME=C date --date=2015-12-08 +%d-%b-%Y
08-Dec-2015
답변2
내장되지 않은 Linux 또는 보다 일반적으로 GNU Date가 있는 시스템을 사용하는 경우 이를 사용하여 임의의 날짜 형식을 지정할 수 있습니다.
LC_ALL=C date -d "$DT" +%d-%b-%Y | tr A-Z a-z
GNU 날짜가 없는 경우(또는 있는 경우에도) 순수 쉘에서 이 작업을 수행할 수 있습니다.
case $DT in
*-01-*|*-1-*) month=jan;;
*-02-*|*-2-*) month=feb;;
*-03-*|*-3-*) month=mar;;
*-04-*|*-4-*) month=apr;;
*-05-*|*-5-*) month=may;;
*-06-*|*-6-*) month=jun;;
*-07-*|*-7-*) month=jul;;
*-08-*|*-8-*) month=aug;;
*-09-*|*-9-*) month=sep;;
*-10-*) month=oct;;
*-11-*) month=nov;;
*-12-*) month=dec;;
esac
echo "${DT##*-}-$month-${DT%%-*}"