cat test.txt |
awk 'BEGIN { FS = "\t" } ;{ print $44=strftime("%d %b %Y",$44) "\t" $44 }'
私が受けている:
31 12 1969 2012-09-27
しかし、私は期待しています:
27 Sep 2012 2012-09-27
エラーはどこにありますか? ありがとう。
本当に awk 組み込み関数を使用してフォーマットを変換したい場合は、次の例が役立ちます。
kent$ echo "2012-09-27" |awk '{t=$0;gsub("-"," ",t);print strftime("%d %b %Y", mktime(t" 00 00 00"))}'
27 Sep 2012
man ページで次の関数の説明を読んでください。
mktime(datespec)
strftime([format [, timestamp[, utc-flag]]])
編集して古いコマンドを修正しようとしましたが、入力ファイルがなく、テストできません...
awk 'BEGIN {FS=OFS="\t"}{t=$44;gsub("-"," ",t); print strftime("%d %b %Y", mktime(t" 00 00 00")),$44}' test.txt