
我有這個
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