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
错误在哪里? 感谢。
答案 0 :(得分: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
阅读手册页中的以下功能说明:
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