Grep dans une sortie JQ possible?

Fermé
bob737 Messages postés 144 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 14 mars 2024 - Modifié le 4 juil. 2022 à 12:00
mamiemando Messages postés 33134 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 31 mai 2024 - 4 juil. 2022 à 12:06
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 33134 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 31 mai 2024 7 756
Modifié le 4 juil. 2022 à 12:07
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