在Solaris中,我正在尝试编写一个shell脚本,将当前日期转换为1970年1月1日之后Unix的天数。这是因为etc / shadow不是使用Epoch时间而是使用'天格式'
即" root:G9yPfhFAqvlsI:15841 ::::::" 15841是约会的地方。
所以本质上我用什么命令来找出现在的纪元时间然后将其转换为天。
答案 0 :(得分:1)
你可能没有GNU工具,这可能会让事情变得更容易。这很简单:
perl -le 'print int(time/86400)'
答案 1 :(得分:0)
我从基础知识中找到了一些伪代码来计算它:
if month > 2 then
month=month+1
else
month=month+13
year=year-1
fi
day=(year*365)+(year/4)-(year/100)+(year/400)+(month*306001/10000)+day
days_since_epoch=day-719591
信用:http://www.unix.com/shell-programming-and-scripting/115449-how-convert-date-time-epoch-time-solaris.html)。在同一论坛帖子中,另一张海报说这可以在Solaris中使用:
truss /usr/bin/date 2>&1 | grep ^time | awk -F"= " '{print $2}'
答案 2 :(得分:0)
Solaris date
实用程序不支持%s
格式。但是,nawk
实用程序具有srand()
函数,该函数在没有传递参数的情况下以秒为单位返回日期。
nawk 'BEGIN {print srand()}'
结果
1405529923
要获取天数而不是秒数,您可以将结果除以86400。
nawk 'BEGIN {printf("%d", srand() / 86400)}'