He subido un script de bash como una Esencia a mi cuenta en Github print_osx_uptimes.sh lo que puede ayudar a responder a su pregunta, aunque no es exactamente lo que se les pide (más complicada).
La secuencia de comandos de consulta de la Manzana Registro del Sistema (ASL) instalaciones para el 'cierre' de los mensajes. El "Mensaje" del campo de valores contienen el tiempo de funcionamiento del sistema como de los sucesos de apagado, que pensé que probablemente está razonablemente cerca del cartel original de la pregunta.
A continuación, convierte el tiempo de segundos a un formato más legible que muestra los días, horas, minutos y segundos.
Probado en OS X 10.10.5, pero no ven la razón por la que no debe trabajar en cualquier cosa, desde 10.7 en adelante (probablemente 10.6).
Editado el código de comprobar también para (duh) 'reboot' de los mensajes y actualizaciones de la salida para mostrar lo que el tipo de evento (es decir. Nombre del remitente) fue para cada uno.
Ejemplo de salida:
$ ./print_osx_uptimes.sh
Shutdown on date/time: Event Reported uptime of:
============================= ========= ===================================
Mon Jul 6 2015 10:32:21 EDT shutdown 1 days 11 hrs 30 min 15 secs
Thu Jul 16 2015 20:47:24 EDT reboot 1 days 22 hrs 15 min 46 secs
Thu Jul 16 2015 22:01:50 EDT shutdown 0 days 21 hrs 4 min 28 secs
Sun Jul 19 2015 02:10:34 EDT shutdown 2 days 16 hrs 35 min 35 secs
Tue Jul 21 2015 19:32:35 EDT shutdown 9 days 17 hrs 41 min 46 secs
Fri Jul 24 2015 20:35:05 EDT shutdown 9 days 7 hrs 55 min 38 secs
Sat Jul 25 2015 00:03:13 EDT shutdown 8 days 10 hrs 45 min 8 secs
Tue Jul 28 2015 09:16:47 EDT shutdown 5 days 21 hrs 20 min 57 secs
Thu Jul 30 2015 22:32:36 EDT shutdown 10 days 0 hrs 3 min 59 secs
Tue Aug 4 2015 01:37:32 EDT shutdown 7 days 4 hrs 24 min 35 secs
Fri Aug 14 2015 19:15:04 EDT reboot 5 days 22 hrs 42 min 1 secs
La carne de la secuencia de comandos en Github Esencial es:
#!/bin/bash
# https://gist.github.com/jps3/afc1e374b632e1ed1ebc
# function displaytime() is a modified form of that from:
# http://unix.stackexchange.com/a/27014
function displaytime {
local T=$1
local D=$((T/60/60/24))
local H=$((T/60/60%24))
local M=$((T/60%60))
local S=$((T%60))
printf '%5s days %2s hrs %2s min %2s secs' $D $H $M $S
}
function get_syslog_entries () {
syslog -d store \
-F '$(Sender) $(Message)' \
-k Sender Req '^(shutdown|reboot)$' \
-k Message Req "SHUTDOWN_TIME"
}
while read -a line; do
sender="${line[0]}"
log_entry_timestamp="$(date -j -f %s "${line[2]}" +"%a %b %e %Y %T %Z")"
uptime_timestamp="$(displaytime "${line[3]}")"
printf "%s %-8s %s\n" "${log_entry_timestamp}" "${sender}" "${uptime_timestamp}"
done < <(get_syslog_entries)
Espero que esto ayude. Traté de limpiar la secuencia de comandos y hacer las partes y comentarios útiles.