bonjour, j'ai dans un fichier que je dois traité par script bash l'heure en format hexadecimal, que je dois convertir en format habituel 00:00:00. pouvez vous m'aider ?
Merci beaucoup d'avance
bonjour, j'ai dans un fichier que je dois traité par script bash l'heure en format hexadecimal, que je dois convertir en format habituel 00:00:00. pouvez vous m'aider ?
Merci beaucoup d'avance
Bonjour,
Un extrait du fichier serait pratique pour voir à quoi ressemble ta fameuse heure en hexadécimal...
si les valeurs sont separées suffit de les injecter dans dc ou bc et de faire les convertions et de remettre le texte en forme.
sur le principe c'est donc très simple.
là où ça peut se compliquer si c'est une valeurs en secondes hexa ... mais ça reste tout à fait faisable....
Pas besoin de bc ou dc, bash sait très bien faire de la conversion de base:
Et si le temps est exprimé en seconde, on peut par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $ echo "0x64 en décimal donne "$((16#64)) 0x64 en décimal donne 100
Mais bon, la seule chose que l'on sait pour le moment, c'est qu'il a des données en hexa dont on ne connait pas la taille qui représentent des horaires sans connaitre non plus le format...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $ printf "%0x\n" $(date +%s) 521d229e $ date --date="@$((16#521d229e))" +%H:%M:%S 00:05:18
Code bash4 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $ printf -v hexPoch '%0x' $(date +%s) $ printf '%(%H:%M:%S)T\n' $((16#$hexPoch)) 01:14:13
bien vu j'avais oublié qu'on pourvait changer de base directement au shell![]()
Partager