将命令结果的纪元日期输出转换为人类可读的

将命令结果的纪元日期输出转换为人类可读的

我一直试图解决这个问题,但我很困惑......我试图推断我在以下位置找到的命令如何用其他格式替换文件中的纪元时间戳?,但我还无法得到它。

我的系统有一个从数据库读取值的命令,我可以读取的值之一是纪元时间格式:

[user@Dreadnaught config]# dbviewer -t Isagraf5.Resource._1.CompileDate
1488303650

如果我手动将结果复制到 date 命令,它工作正常:

[user@Dreadnaught config]$ date -d@1488303650
Tue Feb 28 17:40:50 UTC 2017

我想得到这个作为单个命令(所以我可以将它添加到我的别名列表中,而不必加载 sh 脚本)。我尝试了各种方法将结果从第一个命令传输到第二个命令,但我无法弄清楚。我缺少什么?

从另一个引用的问题中,我已设法将 dbviwer 查询的结果连接到 date 命令,但不执行它。

[user@Dreadnaught config]$ dbviewer -t Isagraf5.Resource._1.CompileDate | sed 's/^//; s/\([0-9]\{10\}\)/date -d @\1/;s/$//'
date -d @1488303650
[user@Dreadnaught config]$ . dbviewer -t Isagraf5.Resource._1.CompileDate | sed 's/^//; s/\([0-9]\{10\}\)/date -d @\1/;s/$//'
-ash: /usr/bin/dbviewer: line 1: syntax error: unexpected "("

感谢您的帮助...

答案1

alias dbdate='date -d@"$( dbviewer -t Isagraf5.Resource._1.CompileDate )"'

您现在应该可以用作dbdate别名

date -d@"$( dbviewer -t Isagraf5.Resource._1.CompileDate )"

该命令将运行dbviewer -t Isagraf5.Resource._1.CompileDate并调用date,其输出插入到@.

$(...)是命令替换。它将被替换为$(...).

相关内容