重複の可能性:
bashで日付形式を変換する
次のような日付を変換する必要があります
2012-06-01T19:05:00+02:00
このようなものに
01-06-2012 19:05
理想的にはsedまたはawkを使用します。どうすればよいですか?
重複の可能性:
bashで日付形式を変換する
次のような日付を変換する必要があります
2012-06-01T19:05:00+02:00
このようなものに
01-06-2012 19:05
理想的にはsedまたはawkを使用します。どうすればよいですか?
これは、sedやawkを使用せずに実行できます。これは、bash自体が必要な文字列置換のほとんどを実行できるためです。具体的には、次のことを行う必要があります。
残りの日付の書式設定は、 dateコマンドで処理できます。
$ date_string='2012-06-01T19:05:00+02:00'
$ date_string="${date_string/T/ }"
$ date_string="${date_string/+*/}"
$ date -d "$date_string" '+%d-%m-%Y %H:%M'
01-06-2012 19:05
echo "2012-06-01T19:05:00+02:00"|sed 's/\(.*\)T\([0-9]*:[0-9]*\).*/\1 \2/'
2012-06-01 19:05
それが何をするかを説明するために:
date -d "$(echo '2012-06-01T19:05:00+02:00' | sed 's/T/ /; s/+.*//')" '+%d-%m-%Y %H:%M'