月をすべて大文字で表示する方法

月をすべて大文字で表示する方法

2桁の月の値(01〜12)があります。 3文字の月の略語(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)}'

関連情報