將一些字串儲存在數組中

將一些字串儲存在數組中

我有這個

sCSISmart1 陷阱型   
    企業旋風                        
    變數 {cycHostAdapterNumber、cycHostAdapterID、cycManagerID}          
    描述                             
    “SNMP 代理程式已啟動。”                       
    --#TYPE“SNMP 代理程式已啟動。”                    
    --#SUMMARY “SNMP 代理程式已啟動”                    
    --#參數{}                           
    --#嚴重性訊息                       
    --#TIMEINDEX 100                  
    --#國家運營                    
    --#幫助“scsismrt.hlp”                          
    --#幫助標籤 101                    
::= 101      

我想做的事

有些指令將每個名稱複製VARIABLE到名為的陣列中var

所以上面的輸出

回顯“${var[0]}”
cycHostAdapter編號

回顯“${var[1]}”
cycHostAdapterID

回顯“${var[2]}”
週期管理器ID

另一個例子

sCSISmart1 陷阱型   
    企業旋風                        
    變數 { scellNameDateTime,                      
                     scellSW組件,                     
                     scellE代碼,                  
                     細胞CAC,                     
                     scellEIP}                           
    描述                             
    “SNMP 代理程式已啟動。”                       
    --#TYPE“SNMP 代理程式已啟動。”                    
    --#SUMMARY “SNMP 代理程式已啟動”                    
    --#參數{}                           
    --#嚴重性訊息                       
    --#TIMEINDEX 100                  
    --#國家運營                    
    --#幫助“scsismrt.hlp”                          
    --#幫助標籤 101                    
::= 101      

上述輸出

回顯“${var[0]}”
單元格名稱日期時間

回顯“${var[1]}”
scellSW組件

回顯“${var[2]}”
scellE代碼

回顯“${var[3]}”
細胞CAC

迴聲“${var[4]}”
細胞EIP

另一個例子

sCSISmart1 陷阱型   
    企業旋風                        
    變數{                    
                     細胞EIP
               }                           
    描述                             
    “SNMP 代理程式已啟動。”                       
    --#TYPE“SNMP 代理程式已啟動。”                    
    --#SUMMARY “SNMP 代理程式已啟動”                    
    --#參數{}                           
    --#嚴重性訊息                       
    --#TIMEINDEX 100                  
    --#國家運營                    
    --#幫助“scsismrt.hlp”                          
    --#幫助標籤 101                    
::= 101      

上述輸出

回顯“${var[0]}”
細胞EIP

我嘗試過的(所有這一切都是將所有內容儲存到prvar

prvar="$(awk '/VARIABLES/,/}/ {gsub("變數"," "); gsub("}"," "); gsub("{"," ");gsub("," ," ");印}' temp1)"

我有什麼想法可以實現這個目標嗎?

答案1

如果您確定名稱中不包含空格,請刪除引號並( )在命令替換周圍使用:

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

效果:

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

相關內容