在数组中存储一些字符串

我有这个

 sCSISmart1 TRAP-TYPE   
    企业旋风                        
     VARIABLES {cycHostAdapterNumber,cycHostAdapterID,cycManagerID}          
    描述                             
     “SNMP代理已启动。”                       
     -  #TYPE“SNMP代理已启动。”                    
     - #SUMMARY“SNMP代理已启动”                    
     -  #ARGUMENTS {}                           
     -  #SEVERITY INFORMATIONAL                       
     -  #TIMEINDEX 100                  
     -  #STATE OPERATIONAL                    
     -  #HELP“scsismrt.hlp”                          
     - #HELPTAG 101                    
 :: = 101      

我想做的事

有些命令将VARIABLE每个名称复制到名为var的数组中

所以上面的输出

 echo“$ {var [0]}”
 cycHostAdapterNumber

 echo“$ {var [1]}”
 cycHostAdapterID

 echo“$ {var [2]}”
 cycManagerID

另一个例子

 sCSISmart1 TRAP-TYPE   
    企业旋风                        
     VARIABLES {scellNameDateTime,                      
                      scellSWComponent,                     
                      scellECode,                  
                      scellCAC,                     
                      scellEIP}                           
    描述                             
     “SNMP代理已启动。”                       
     -  #TYPE“SNMP代理已启动。”                    
     - #SUMMARY“SNMP代理已启动”                    
     -  #ARGUMENTS {}                           
     -  #SEVERITY INFORMATIONAL                       
     -  #TIMEINDEX 100                  
     -  #STATE OPERATIONAL                    
     -  #HELP“scsismrt.hlp”                          
     - #HELPTAG 101                    
 :: = 101      

输出如上

 echo“$ {var [0]}”
 scellNameDateTime

 echo“$ {var [1]}”
 scellSWComponent

 echo“$ {var [2]}”
 scellECode

 echo“$ {var [3]}”
 scellCAC

 echo“$ {var [4]}”
 scellEIP

另一个例子

 sCSISmart1 TRAP-TYPE   
    企业旋风                        
     VARIABLES {                    
                      scellEIP
                }                           
    描述                             
     “SNMP代理已启动。”                       
     -  #TYPE“SNMP代理已启动。”                    
     - #SUMMARY“SNMP代理已启动”                    
     -  #ARGUMENTS {}                           
     -  #SEVERITY INFORMATIONAL                       
     -  #TIMEINDEX 100                  
     -  #STATE OPERATIONAL                    
     -  #HELP“scsismrt.hlp”                          
     - #HELPTAG 101                    
 :: = 101      

输出如上

 echo“$ {var [0]}”
 scellEIP

我尝试过的(所有这一切都是将所有内容存储到prvar

 prvar =“$(awk'/ VARIABLES /,/} / {gsub(”VARIABLES“,”“); gsub(”}“,”“); gsub(”{“,”“); gsub(”,“ ,“”); print}'temp1)“

任何想法我怎样才能做到这一点?

如果您确定名称中没有空格,请删除引号并在命令替换周围使用( )

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

效果:

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