
eu tenho isto
sCSISmart1 TIPO ARMADILHA Ciclone EMPRESARIAL VARIÁVEIS {cycHostAdapterNumber, cycHostAdapterID, cycManagerID} DESCRIÇÃO "Agente SNMP ativado." --#TYPE "Agente SNMP está ativo." --#SUMMARY "Agente SNMP está ativo" --#ARGUMENTOS {} --#SEVERIDADE INFORMATIVA --#TIMEINDEX 100 --#ESTADO OPERACIONAL --#AJUDA "scsismrt.hlp" --#HELPTAG 101 ::= 101
O que eu quero fazer
Algum comando para copiar cada nome VARIABLE
em um array chamadovar
Então a saída acima
eco "${var[0]}" cycHostAdapterNumber eco "${var[1]}" cycHostAdapterID eco "${var[2]}" cyManagerID
Outro exemplo
sCSISmart1 TIPO ARMADILHA Ciclone EMPRESARIAL VARIÁVEIS {scellNameDateTime, scellSWComponent, célulaECode, célulaCAC, célulaEIP} DESCRIÇÃO "Agente SNMP ativado." --#TYPE "Agente SNMP está ativo." --#SUMMARY "Agente SNMP está ativo" --#ARGUMENTOS {} --#SEVERIDADE INFORMATIVA --#TIMEINDEX 100 --#ESTADO OPERACIONAL --#AJUDA "scsismrt.hlp" --#HELPTAG 101 ::= 101
Saída para o acima
eco "${var[0]}" scellNameDateTime eco "${var[1]}" scellSWComponent eco "${var[2]}" scellECode eco "${var[3]}" célulaCAC eco "${var[4]}" célulaEIP
Outro exemplo
sCSISmart1 TIPO ARMADILHA Ciclone EMPRESARIAL VARIÁVEIS { célulaEIP } DESCRIÇÃO "Agente SNMP ativado." --#TYPE "Agente SNMP está ativo." --#SUMMARY "Agente SNMP está ativo" --#ARGUMENTOS {} --#SEVERIDADE INFORMATIVA --#TIMEINDEX 100 --#ESTADO OPERACIONAL --#AJUDA "scsismrt.hlp" --#HELPTAG 101 ::= 101
Saída para o acima
eco "${var[0]}" célulaEIP
O que eu tentei (tudo o que isso faz é armazenar tudo prvar
)
prvar="$(awk '/VARIÁVEIS/,/}/ {gsub("VARIÁVEIS"," "); gsub("}"," "); gsub("{"," ");gsub("," ," ");imprimir}'temp1)"
Alguma idéia de como posso conseguir isso?
Responder1
Se você tiver certeza de que os nomes não terão espaços, remova as aspas e use ( )
na substituição do comando:
prvar=($(awk ... temp1))
O efeito:
$ prvar=( $(awk '/VARIABLES/,/}/ {gsub("VARIABLES"," "); gsub("}"," "); gsub("{"," ");gsub(","," ");print}' temp1) )
$ echo ${prvar[@]} ${#prvar[@]}
cycHostAdapterNumber cycHostAdapterID cycManagerID 3