3
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

エラーはどこにありますか? ありがとう。

4

1 に答える 1

5

本当に 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
于 2013-04-09T15:55:45.910 に答える