如何获取全部大写的月份

如何获取全部大写的月份

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

相关内容