我有两位数的月份值(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)}'