shell - scripts - linux sh script example
ManipulaciĆ³n de fecha YYYYMMDDHH en script de shell en Unix (2)
Debe verificar si gdate
no está instalado en su versión de Solaris (podría estar en /usr/gnu/bin/date
, /usr/sfw/bin/[g]date
, /usr/local/bin/[g]date
, /usr/csw/bin/[g]date
o simplemente /usr/bin/gdate
dependiendo de la versión). De lo contrario, debería ser fácil encontrar un paquete que contenga la fecha GNU e instalarlo.
De todos modos, aquí hay una función de shell que solo debería funcionar en una versión estándar de Solaris y que haga lo que yo crea que quiera:
f()
{
echo $1 | perl -MTime::Local -nle ''
use POSIX ''strftime'';
$op=''$2''*3600;
$sec=timelocal(0,0,$4,$3,$2-1,$1) if /(/d{4})(/d{2})(/d{2})(/d{2})/;
$sec=$sec+$op;
print strftime "%Y%m%d%H/n", localtime($sec);''
}
$ f 2014010112 -24
2013123112
Esta pregunta ya tiene una respuesta aquí:
- fecha equivalente de GNU a solaris 1 respuesta
Tengo una fecha en formato "AAAAMMDDHH" y quiero agregar o restar horas de ella. La fecha GNU (fecha -d opción) funciona como un amuleto en Linux pero no puede hacer esto en entornos no GNU como Solaris. ¿Puede alguien ayudarme en cómo puedo hacer esto?
Solo para que en caso de que alguien aterrice aquí buscando respuesta a la pregunta anterior "fecha no de GNU": la siguiente pregunta es más apropiada con buenas respuestas: cálculos de fecha sin herramientas de GNU