월 번호를 월 이름으로 변환

월 번호를 월 이름으로 변환

월 숫자를 이름으로 변환하는 방법이 있나요?

예:

2013년 10월 22일이 10월 22일이 됩니다.

GNU 날짜가 없으며 내 OS는 AIX입니다.

답변1

몇 개의 키만 값에 매핑해야 한다면 배열을 사용하세요.

#!/bin/ksh

## cmdline argument is e.g. "2003-10-22"
DATE=$1

### extract day, month and year into separate variables
MONTHDAY=${DATE#*-}

YEAR=${DATE%%-*}
MONTH=${MONTHDAY%%-*}
DAY=${MONTHDAY#*-}

# an array to look up th month-names
# since month-numbers start with 1, the first element in the array is invalid.
set -A monthnames invalid Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec

## perform the lookup
MONTHNAME=${monthnames[${MONTH}]}

## display "<Month> <DAY>"
echo ${MONTHNAME} ${DAY}

답변2

그누 date:

$ date -d 2013-10-22 '+%b %-d'
Oct 22

OS X 및 FreeBSD date:

$ date -jf %F 2013-10-22 '+%b %-d'
Oct 22

%b월 이름의 약어이며, %B전체 월 이름입니다.

답변3

새로운 버전을 사용하세요 ksh:

$ printf "%(%a %b %d %Y)T\n" 2013-10-22
Tue Oct 22 2013

(로케일을 인식합니다. 예를 들어 스페인어 로케일에서는 출력됩니다 mar oct 22 2013)

관련 정보