将 linux sysuptime 转换为格式良好的日期

Nav*_*adi 11 shell uptime time

我想以/proc/uptime良好的格式显示为:

DD:HH:MM:SS
Run Code Online (Sandbox Code Playgroud)

/proc/uptime 给我以秒为单位的系统时间,是否有将秒转换为这种格式的标准解决方案?

min*_*ndc 16

这是一种没有的方法perl

awk '{printf("%d:%02d:%02d:%02d\n",($1/60/60/24),($1/60/60%24),($1/60%60),($1%60))}' /proc/uptime
Run Code Online (Sandbox Code Playgroud)


jof*_*fel 5

例如,您可以使用 perl 和一些简单的数学来做到这一点:

cat /proc/uptime |  perl -ne '/(\d*)/ ; printf "%02d:%02d:%02d:%02d\n",int($1/86400),int(($1%86400)/3600),int(($1%3600)/60),$1%60' 
Run Code Online (Sandbox Code Playgroud)

如果您不需要秒,则只需运行该uptime命令即可。然后可以将其输出简单地转换为 DD:HH:MM。

例如使用(仅在正常运行时间 > 1 小时时才以这种方式工作)

 uptime | perl -ne '/(\d*) day[^\d]*(\d*):(\d*)/ ; printf "%02d:%02d:%02d\n", $1, $2, $3'
Run Code Online (Sandbox Code Playgroud)