In UNIX come convertire in epoca stringhe millisecondi data come:Come convertire le stringhe come "19-FEB-12" ad oggi epoca in UNIX
19-FEB-12
16-FEB-12
05-AUG-09
ho bisogno di questo per confrontare queste date con l'ora corrente sul server.
In UNIX come convertire in epoca stringhe millisecondi data come:Come convertire le stringhe come "19-FEB-12" ad oggi epoca in UNIX
19-FEB-12
16-FEB-12
05-AUG-09
ho bisogno di questo per confrontare queste date con l'ora corrente sul server.
Per convertire una data di secondi dall'epoca:
date --date="19-FEB-12" +%s
epoca attuale:
date +%s
Quindi, dal momento che sono le date in passato:
NOW=`date +%s`
THEN=`date --date="19-FEB-12" +%s`
let DIFF=$NOW-$THEN
echo "The difference is: $DIFF"
Utilizzo del comando BSD date
, si wo ULD bisogno
$ date -j -f "%d-%B-%y" 19-FEB-12 +%s
Differenze da GNU date
:
-j
impedisce date
dal tentativo di impostare l'orologio-f
-d
)Ecco un modo utilizzando GNU awk
. Per eseguire:
awk -f script.awk file
Contenuto del script.awk
:
BEGIN {
n = systime()
FS="-"
}
{
t = mktime(sprintf("%d %d %d %d %d %d", "20" $3, convert($2), $1, 0, 0, 0))
printf "%.1f days ago\n", (n - t)/60/60/24
}
function convert(m) {
return(((index("JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC", m) - 1)/3) + 1)
}
Risultati:
358.6 days ago
361.6 days ago
1286.6 days ago
fredda grazie! – hellish
Vorrei +1 @chepner per i dettagli BSD se potessi :) – Anew