awkを使用した日付フィールドの書式設定

awkを使用した日付フィールドの書式設定

日付形式を「09-12:36:10」から「09-月-年12:36:10」に変換する方法(「月」を現在の年に変更し、現在の月名(3文字の略語)と「年」) (4桁)、awkを使用していますか?

答え1

単に、

echo 09-12:36:10 | awk -F '-' -v date="$(date +"-%b-%Y " )" '{ print $1date$2}'

その月を大文字で表示するには、次の手順を実行します。

echo 09-12:36:10 | awk -F '-' -v date="$(date +"-%b-%Y " )" '{ print toupper($1date$2)}'

答え2

これがどれほど強力であるべきかは不明ですが、これが始まりです。

#!/usr/bin/awk -f
BEGIN {
    FS = "-"
}
{
    print $1 "-MONTH-YEAR", $2
}

答え3

GNU Awk( ) があればgawk組み込みsystimestrftime

gawk -F'[-]' '{print $1, strftime("%b %Y", systime()), $2}'   

前任者。

$ echo '09-12:36:10' | gawk -F'[-]' '{print $1, strftime("%b %Y", systime()), $2}'
09 Jul 2018 12:36:10

大文字の略式月が必要な場合は、%^b次のようにしてください。

$ echo '09-12:36:10' | awk -F'[-]' '{print $1 strftime("-%^b-%Y", systime()), $2}'
09-JUL-2018 12:36:10

関連情報