
나는 이것을 가지고있다
sCSISmart1 트랩 유형 엔터프라이즈 사이클론 변수 {cycHostAdapterNumber, cycHostAdapterID, cycManagerID} 설명 "SNMP 에이전트가 작동 중입니다." --#TYPE "SNMP 에이전트가 작동 중입니다." --#SUMMARY "SNMP 에이전트가 작동 중입니다." --#인수 {} --#심각도 정보 --#TIMEINDEX 100 --#국가 운영 --#HELP "scsismrt.hlp" --#도움말태그 101 ::= 101
내가 하고 싶은 일
VARIABLE
각 이름을 이름이 지정된 배열에 복사하는 일부 명령var
그래서 위의 출력
에코 "${var[0]}" cycHostAdapter번호 에코 "${var[1]}" cycHostAdapterID 에코 "${var[2]}" cycManagerID
다른 예시
sCSISmart1 트랩 유형 엔터프라이즈 사이클론 변수 { scellNameDateTime, scellSW컴포넌트, 셀E코드, 셀CAC, scellEIP} 설명 "SNMP 에이전트가 작동 중입니다." --#TYPE "SNMP 에이전트가 작동 중입니다." --#SUMMARY "SNMP 에이전트가 작동 중입니다." --#인수 {} --#심각도 정보 --#TIMEINDEX 100 --#국가 운영 --#HELP "scsismrt.hlp" --#도움말태그 101 ::= 101
위의 출력
에코 "${var[0]}" scellName날짜시간 에코 "${var[1]}" scellSWComponent 에코 "${var[2]}" scellECode 에코 "${var[3]}" scellCAC 에코 "${var[4]}" scellEIP
다른 예시
sCSISmart1 트랩 유형 엔터프라이즈 사이클론 변수 { scellEIP } 설명 "SNMP 에이전트가 작동 중입니다." --#TYPE "SNMP 에이전트가 작동 중입니다." --#SUMMARY "SNMP 에이전트가 작동 중입니다." --#인수 {} --#심각도 정보 --#TIMEINDEX 100 --#국가 운영 --#HELP "scsismrt.hlp" --#도움말태그 101 ::= 101
위의 출력
에코 "${var[0]}" scellEIP
내가 시도한 것은 (이 모든 것은 모든 것을 에 저장하는 것입니다 prvar
)
prvar="$(awk '/VARIABLES/,/}/ {gsub("변수"," "); gsub("}"," "); gsub("{"," ");gsub("," ," ");인쇄}' 임시1)"
어떤 아이디어라도 어떻게 달성할 수 있나요?
답변1
이름에 공백이 없다고 확신하는 경우 따옴표를 제거하고 ( )
명령 대체를 사용하십시오.
prvar=($(awk ... temp1))
그 효과:
$ prvar=( $(awk '/VARIABLES/,/}/ {gsub("VARIABLES"," "); gsub("}"," "); gsub("{"," ");gsub(","," ");print}' temp1) )
$ echo ${prvar[@]} ${#prvar[@]}
cycHostAdapterNumber cycHostAdapterID cycManagerID 3