JQ convertir hh min secs en sec

Résolu
bob737 Messages postés 144 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,


une requete api dont je récupère le résultat par le jq suivant:
jq -r '"\(.objectName),\(.objectType),\(.slaName),\(.isOnDemand),\(.startTime),\(.endTime),\(.duration)"'


retourne
slucfrbw2110,VmwareVm,SLA_UAT,true,2021-06-29T15:10:51.389Z,2021-06-29T15:13:19.843Z,2 mins 28 secs


or j'aimerais récupérer le résultat sous le format

 slucfrbw2110,VmwareVm,SLA_UAT,true,2021-06-29T15:10:51.389Z,2021-06-29T15:13:19.843Z,88


et donc convertir dans le jq
2 mins 28 secs
en
88
.

Est-ce possible? si oui comment faire?

Merci de votre aide. ;-)
A voir également:

2 réponses

mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
Bonjour,

Je pense que tu voulais dire 2 * 60 + 48 = 148.

Il suffit d'extraire avec
sed
le nombre de minutes et le nombre de secondes, faire le petit calcul par exemple avec
bc
ou l'opérateur
$(( ... ))
si tu es en bash, et réécrire le résultat.

#!/bin/bash
s=$(jq -r '"\(.objectName),\(.objectType),\(.slaName),\(.isOnDemand),\(.startTime),\(.endTime),\(.duration)"')
min=$(echo "$s" | sed -e 's/.*,\([0-9]*\) mins.*/\1/')
sec=$(echo "$s" | sed -e 's/.* \([0-9]*\) secs/\1/')
total=$(($min * 60 + $sec))
echo "$s" | sed -e "s/\(.*,\)\([0-9]* mins [0-9]* secs\)/\1$total/g"


Bonne chance
1
bob737 Messages postés 144 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup
0
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
Merci pour ton retour, bonne continuation :-)
0