【问题标题】:Convert Epoch timestamp to readable timestamp of a column将 Epoch 时间戳转换为列的可读时间戳
【发布时间】:2016-02-13 13:16:17
【问题描述】:

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

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 个字段(纪元时间戳转换为可读格式)并将所有其他字段保留在输出中。我使用的是 AIX 7.1。我可以使用以下命令转换第 7 个字段并显示它,但如何在输出报告中也显示其他字段。

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

【问题讨论】:

  • strftime 函数在 AIX 7.1 上对我不起作用。我收到以下错误:awk: 0602-553 Function strftime is not defined

标签: shell unix awk aix


【解决方案1】:

这将更新 $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(blah blah)
  • @123,马上。非常感谢您的提示。像您这样的人,值得花时间在 SO 上。
  • 这不是只适用于 gawk 吗?另请注意,要打印日期,您可以使用%T-%D 请参阅:gnu.org/software/gawk/manual/html_node/…
  • 我在 AIX 7.1 :::: awk: 0602-553 未定义函数 strftime 上收到以下错误。有人可以帮忙吗?
  • 如果你安装了 Perl,perl -ane '{$F[6]=scalar(localtime($F[6])); print join(" ", @F), "\n"}' tmp1.txt
猜你喜欢
  • 2019-12-24
  • 2017-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-29
  • 2020-01-19
  • 2013-01-04
相关资源
最近更新 更多