Tengo un script bash que lee muchas fechas en el tiempo de época y determina la hora (local) del día en que ocurrieron. Fragmento relevante:
while read ts do hour="$(date -d@$((${ts} / 1000)) +%H)" ((hourly_counts["${hour}"]+=1)) done < "${jqfile}" Es bastante lento, porque genera una nueva subcapa para cada invocación de date . ¿Hay una forma sensata de evitar esto? Parece que la date no admite consultas múltiples.
Todo lo que puedo pensar es en generar un nuevo shell, canalizar los comandos de date y recuperar los resultados, para que todos se ejecuten en el mismo shell. Pero no tengo claro cómo hacer esto, y parece un poco sobrediseñado.
Usar printf :
printf -v hour '%(%H)T' "$(( ts / 1000 ))" Escriba help printf para saber más sobre el comando.
También verifique strftime(3) . El comportamiento puede depender del valor de TZ y LC_TIME .