J'ai cette commande
Ici
vovar = OBJETS prvar = "$ (awk '/'" $ vovar "'/, /}/{gsub (" $ vovar "," "); gsub ("} ", ":% s,"); gsub ("{", ""); gsub (",", ":% s,"); print} 'temp1) "
Contenu de temp1
ciscoFlashCopyCompletionTrap NOTIFICATION-TYPE OBJETS { ciscoFlashCopyStatus } STATUS actuel DESCRIPTION "Une ciscoFlashCopyCompletionTrap est envoyée à la fin de D’une opération de copie rapide si un tel piège A été demandé lors du lancement de l’opération. " :: = {ciscoFlashMIBTraps 1}
Ce que je veux que la commande fasse
ciscoFlashCopyStatus :% s:% s,
Ce qu'il fait réellement
OBJETS CiscoFlashCopyStatus :% S:% s,
Comment puis-je changer ma commande awk afin que je puisse obtenir ce que je veux?
Vous avez utilisé vovar
en dehors de guillemets simples pour la première fois, mais pas pour la deuxième fois:
... awk '/'"$vovar"'/,/}/ {gsub("$vovar"," ") ...
Si vous aviez été cohérent:
$ awk '/'"$vovar"'/,/}/ {gsub("'"$vovar"'"," "); gsub("}",": %s,"); gsub("{"," ");gsub(",",": %s,");print}' foo
ciscoFlashCopyStatus
: %s: %s,