
私はこれを持っています
sCSISmart1 トラップタイプ エンタープライズサイクロン 変数 {cycHostAdapterNumber、cycHostAdapterID、cycManagerID} 説明 「SNMP エージェントが起動しています。」 --#TYPE "SNMP エージェントが起動しています。" --#SUMMARY "SNMP エージェントが起動しています" --#引数 {} --#重大度情報 --#タイムインデックス 100 --#状態は動作中 --#ヘルプ "scsismrt.hlp" --#ヘルプタグ 101 ::= 101
私がしたいこと
VARIABLE
それぞれの名前を配列にコピーするコマンドvar
したがって上記の出力
エコー "${var[0]}" cycホストアダプタ番号 エコー "${var[1]}" cycホストアダプタID エコー "${var[2]}" サイクルマネージャーID
もう一つの例
sCSISmart1 トラップタイプ エンタープライズサイクロン 変数 { scellNameDateTime, セルSWコンポーネント、 セルコード、 セルCAC、 セルEIP} 説明 「SNMP エージェントが起動しています。」 --#TYPE "SNMP エージェントが起動しています。" --#SUMMARY "SNMP エージェントが起動しています" --#引数 {} --#重大度情報 --#タイムインデックス 100 --#状態は動作中 --#ヘルプ "scsismrt.hlp" --#ヘルプタグ 101 ::= 101
上記の出力
エコー "${var[0]}" セル名日付時刻 エコー "${var[1]}" セルSWコンポーネント エコー "${var[2]}" セルコード エコー "${var[3]}" セルCAC エコー "${var[4]}" セルEIP
もう一つの例
sCSISmart1 トラップタイプ エンタープライズサイクロン 変数 { セルEIP } 説明 「SNMP エージェントが起動しています。」 --#TYPE "SNMP エージェントが起動しています。" --#SUMMARY "SNMP エージェントが起動しています" --#引数 {} --#重大度情報 --#タイムインデックス 100 --#状態は動作中 --#ヘルプ "scsismrt.hlp" --#ヘルプタグ 101 ::= 101
上記の出力
エコー "${var[0]}" セルEIP
私が試したこと(これはすべてを保存するだけですprvar
)
prvar="$(awk '/VARIABLES/,/{gsub("VARIABLES"," "); 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