두 자리 월 값(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)}'