【问题标题】:(MacOS Terminal). How to produce a readable Epoch time from terminal(MacOS 终端)。如何从终端生成可读的纪元时间
【发布时间】:2023-02-07 06:05:17
【问题描述】:
我正在尝试向更改帐户密码的朋友发出命令。他正在尝试确定一种方法来确定上次更改密码的时间。我能够给他这个命令,它在 MacOS 终端上运行,但我想通过提供可读的答案让它变得更好一点。这是命令:
dscl . read /Users/username accountPolicyData | grep -A1 SetTime
结果是这样的:
<key>passwordLastSetTime</key>
<real>1670348364.4110398</real>
这个命令很好地拉动了重置日期和时间,但他不得不寻找纪元时间计算器可能有点难以理解。我的问题:
你们中有人知道我如何去掉括号内的文本并从命令行转换纪元时间吗?如果这样做有帮助的话,我很乐意删除标题行,如果这样做会允许可读的数字转换。
感谢您提出的任何建议。
【问题讨论】:
标签:
macos
awk
terminal
grep
dscl
【解决方案1】:
您可以使用以下命令提取纪元时间并将其转换为人类可读的日期和时间:
dscl . read /Users/username accountPolicyData | grep -A1 passwordLastSetTime | awk '/real/ {print strftime("%c",$2)}'
解释:
数字信号线。 read /Users/username accountPolicyData 与之前相同,它检索指定用户名的帐户策略数据。
grep -A1 passwordLastSetTime 过滤输出以仅显示包含 passwordLastSetTime 的行和下一行。
awk '/real/ {print strftime("%c",$2)}' 是处理过滤输出的 awk 脚本。该脚本匹配包含 real 的行,提取第二个字段 ($2),并使用 strftime 函数将其从纪元时间转换为人类可读的日期和时间。 strftime 的 %c 格式字符串指定特定于语言环境的日期和时间格式。