Shell 将历元时间戳转换为列的可读时间戳

Shell 将历元时间戳转换为列的可读时间戳,shell,unix,awk,aix,Shell,Unix,Awk,Aix,我有一个包含以下内容的文件: 78903 0 1 WEEKEND_FULL_ORACLE_BKP Full GYUI-12543 1446541202 0000006420 0000000000 186880 78401 0 1 WEEKLY_FULL_UNIX_BKP Full WEEKLY_TEST 1446508902 0000038818 0000000000 448755456 78306 0 1 WEEKLY_FULL_UNIX_BKP1 Full FTYU-32145 144645

我有一个包含以下内容的文件:

78903 0 1 WEEKEND_FULL_ORACLE_BKP Full GYUI-12543 1446541202 0000006420 0000000000 186880
78401 0 1 WEEKLY_FULL_UNIX_BKP Full WEEKLY_TEST 1446508902 0000038818 0000000000 448755456
78306 0 1 WEEKLY_FULL_UNIX_BKP1 Full FTYU-32145 1446455973 0000091647 0000000000 390188288
我想将第7个字段(历元时间戳转换为可读格式)转换成输出中的所有其他字段。我可以转换第7个字段并使用下面的命令显示它,但是如何在输出报告中显示其他字段呢

awk '{print "printf \"%T\n\" \\#"$7}' tmp1.txt | ksh93

这将用可读时间更新$7,最后的1将打印整行

awk '{ $7=strftime("%T",$7); } 1' tmp1.txt
如果Perl可用

perl -ane '{$F[6]=scalar(localtime($F[6])); print join(" ", @F), "\n"}' tmp1.txt

过度杀戮,只需执行
$7=strftime(废话)
@123,就可以了。谢谢你给我小费。伙计们,像你们这样的人值得我们花时间在这上面。这不是只适用于呆呆的人吗?还要注意,要打印日期,您可以使用
%T-%D
参见:我在AIX7.1上遇到以下错误:::awk:0602-553函数strftime未定义。如果您安装了Perl,
Perl-ane'{$F[6]=scalar(localtime($F[6]);print join(“,@F),“\n”}”tmp1.txt
strftime函数在AIX7.1上对我不起作用。我得到以下错误:awk:0602-553函数strftime未定义