월을 모두 대문자로 표시하는 방법

월을 모두 대문자로 표시하는 방법

두 자리 월 값(01~12)이 있습니다. 세 글자로 된 월 약어(예: JAN, FEB, MAR 등)를 가져와야 하며 다음 명령을 사용하여 대소문자 혼합으로 가져올 수 있습니다.

date -d "20170711" | date +"%b"

출력은 "Jul"입니다. "JUL"이기를 원합니다. 그것을 얻을 수 있는 표준 날짜 옵션이 있습니까?

답변1

^      use upper case if possible

결과:

$ date +%^b
JUL

보너스: 제가 이 답변을 얻은 방법은 다음과 같습니다.

man date Enter /case Enter n

답변2

파이프로 연결할 수 있습니다.tr(1):

date -d "20170711" +"%b" | tr '[:lower:]' '[:upper:]'

답변3

date -d '20170711' '+%^b'그리고 date -d '20170711' '+%b' | tr '[:lower:]' '[:upper:]'그것은 훌륭하게 작동합니다.

매개변수 확장을 사용하여 이 작업을 수행할 수도 있습니다.

$ month=$(date -d '20170711' '+%b')
$ echo "${month^^}"
JUL

답변4

또 다른 해결책은 awk를 사용하는 것입니다.

date -d "20170711" | date +"%b" | awk '{print toupper($0)}'

관련 정보