Передающая Переменная в awk gsub

У меня есть эта команда
Здесь

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

Содержание 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 }

Что я хочу, чтобы команда сделала

                ciscoFlashCopyStatus  
                : %s: %s,

Что это на самом деле делает

        OBJECTS   

                ciscoFlashCopyStatus  
                : %s: %s,

Как я могу изменить свою команду awk так, чтобы я мог получить то, что я хочу?

4
задан 30 June 2015 в 07:54

1 ответ

Вы использовали vovar внешние одинарные кавычки впервые, но не во второй раз:

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

, Если Вы были последовательны:

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


                ciscoFlashCopyStatus  
                : %s: %s,
4
ответ дан 1 December 2019 в 09:48

Другие вопросы по тегам:

Похожие вопросы: