Сохранение некоторых строк в массиве

Сохранение некоторых строк в массиве

у меня есть это

sCSISmart1 ТИП ЛОВУШКИ   
    циклон ENTERPRISE                        
    ПЕРЕМЕННЫЕ {cycHostAdapterNumber, cycHostAdapterID, cycManagerID}          
    ОПИСАНИЕ                             
    «Агент SNMP запущен».                       
    --#TYPE "Агент SNMP запущен."                    
    --#SUMMARY "Агент SNMP запущен"                    
    --#АРГУМЕНТЫ {}                           
    --#СЕРЬЕЗНОСТЬ ИНФОРМАЦИОННАЯ                       
    --#TIMEINDEX 100                  
    --#СОСТОЯНИЕ ЭКСПЛУАТАЦИОННОЕ                    
    --#HELP "scsismrt.hlp"                          
    --#HELPTAG 101                    
::= 101      

Что я хочу сделать

Некоторая команда для копирования каждого имени VARIABLEв массив с именемvar

Итак, вывод выше

эхо "${var[0]}"
cycHostAdapterNumber

эхо "${var[1]}"
cycHostAdapterID

эхо "${var[2]}"
cycManagerID

Другой пример

sCSISmart1 ТИП ЛОВУШКИ   
    циклон ENTERPRISE                        
    ПЕРЕМЕННЫЕ { scellNameDateTime,                      
                     scellSWComponent,                     
                     scellECode,                  
                     scellCAC,                     
                     scellEIP}                           
    ОПИСАНИЕ                             
    «Агент SNMP запущен».                       
    --#TYPE "Агент SNMP запущен."                    
    --#SUMMARY "Агент SNMP запущен"                    
    --#АРГУМЕНТЫ {}                           
    --#СЕРЬЕЗНОСТЬ ИНФОРМАЦИОННАЯ                       
    --#TIMEINDEX 100                  
    --#СОСТОЯНИЕ ЭКСПЛУАТАЦИОННОЕ                    
    --#HELP "scsismrt.hlp"                          
    --#HELPTAG 101                    
::= 101      

Вывод для вышеизложенного

эхо "${var[0]}"
scellNameДатаВремя

эхо "${var[1]}"
scellSWComponent

эхо "${var[2]}"
scellECode

эхо "${var[3]}"
scellCAC

эхо "${var[4]}"
scellEIP

Другой пример

sCSISmart1 ТИП ЛОВУШКИ   
    циклон ENTERPRISE                        
    ПЕРЕМЕННЫЕ {                    
                     scellEIP
               }                           
    ОПИСАНИЕ                             
    «Агент SNMP запущен».                       
    --#TYPE "Агент SNMP запущен."                    
    --#SUMMARY "Агент SNMP запущен"                    
    --#АРГУМЕНТЫ {}                           
    --#СЕРЬЕЗНОСТЬ ИНФОРМАЦИОННАЯ                       
    --#TIMEINDEX 100                  
    --#СОСТОЯНИЕ ЭКСПЛУАТАЦИОННОЕ                    
    --#HELP "scsismrt.hlp"                          
    --#HELPTAG 101                    
::= 101      

Вывод для вышеизложенного

эхо "${var[0]}"
scellEIP

Что я пробовал (Все, что он делает, это сохраняет все в prvar)

prvar="$(awk '/ПЕРЕМЕННЫЕ/, /}/ {gsub("ПЕРЕМЕННЫЕ"," "); gsub("}"," "); gsub("{"," ");gsub(","," ");print}' temp1)"

Есть идеи, как этого добиться?

решение1

Если вы уверены, что в именах не будет пробелов, удалите кавычки и используйте ( )подстановку команд:

prvar=($(awk ... temp1))

Эффект:

$ prvar=( $(awk '/VARIABLES/,/}/ {gsub("VARIABLES"," "); gsub("}"," "); gsub("{"," ");gsub(","," ");print}' temp1) )
$ echo ${prvar[@]} ${#prvar[@]}
cycHostAdapterNumber cycHostAdapterID cycManagerID 3

Связанный контент