Passando Variável para awk gsub

4

Eu tenho este comando
Aqui

vovar=OBJECTS
prvar="$(awk '/'"$vovar"'/,/}/ {gsub("$vovar"," "); gsub("}",": %s,"); gsub("{"," ");gsub(",",": %s,");print}' temp1)"

Conteúdo do temp1

ciscoFlashCopyCompletionTrap NOTIFICATION-TYPE
        OBJECTS   
                { 
                ciscoFlashCopyStatus  
                }
        STATUS  current
        DESCRIPTION
                "A ciscoFlashCopyCompletionTrap is sent at the 
                completion of a flash copy operation if such a trap 
                was requested when the operation was initiated.
                "
        ::= { ciscoFlashMIBTraps 1 }

O que eu quero que o comando faça

                ciscoFlashCopyStatus  
                : %s: %s,

O que realmente faz

        OBJECTS   

                ciscoFlashCopyStatus  
                : %s: %s,

Como posso alterar meu comando do awk para que eu possa obter o que eu quero?

    
por SamFlynn 30.06.2015 / 06:19

1 resposta

4

Você usou vovar sem aspas simples pela primeira vez, mas não na segunda vez:

... awk '/'"$vovar"'/,/}/ {gsub("$vovar"," ") ...

Se você fosse consistente:

$ awk '/'"$vovar"'/,/}/ {gsub("'"$vovar"'"," "); gsub("}",": %s,"); gsub("{"," ");gsub(",",": %s,");print}' foo


                ciscoFlashCopyStatus  
                : %s: %s,
    
por muru 30.06.2015 / 06:42