Grep dans une sortie JQ possible?

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

Quand je la commande suivante:

REP/curl.sh val1 -X GET "https://$IP/api/internal/role/$ROLE_ID/authorization" | jq -r '.authorizationSpecifications[] | select (.privilege=="FileRestore") | .resources[]' | awk '{ printf "%s,",$1 }' | sed '$ s/.$//'


... j'ai la réponse en ligne suivante :

VirtualMachine:::ID1,VirtualMachine:::ID2


Or ces deux VMID sont renseignés dans une autre fichier avec :

NOM_VM1;VirtualMachine:::ID1
NOM_VM2;VirtualMachine:::ID2


J'aimerais en sortie de la première commande:
NOM_VM1,NOM_VM2,VirtualMachine:::ID1,VirtualMachine:::ID2


Dois-je faire des boucles ou y a-t-il plus propre?

Merci de votre aide.
A voir également:

1 réponse

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

Peux-tu nous donner plutôt le résultat de :

REP/curl.sh val1 -X GET "https://$IP/api/internal/role/$ROLE_ID/authorization" | jq -r '.authorizationSpecifications[] | select (.privilege=="FileRestore") | .resources[]'


... car tu as déjà commencé à trafiquer le résultat et on perd peut être une opportunité d'écrire la commande de manière plus élégante.

Par ailleurs, confirmes-tu que le résultat attendu est bien :
NOM_VM1,NOM_VM2,VirtualMachine:::ID1,VirtualMachine:::ID2


(dans cet ordre et avec ces séparateurs) ? Car ça paraît un peu étrange de mettre au même niveau des informations différentes et relatives à différentes machines :-)

Peut-être aussi que si tu nous dis quel est le but final, on pourra te proposer une autre approche.

Ensuite, je pense qu'il faut plutôt envisager de traiter le résultat de ton API avec un script awk.

Bonne chance
0