Hallo
Ich habe ein Problem das ich einfach nicht gelöst bekomme:
Eine Abfrage mit SNMPWALK hat folgendes Ergebnis, das ich jetzt weiterverarbeiten muß:
.1.3.6.1.4.1.9.10.24.1.2.2.1.4.2.
31990 = STRING: "
UGWGRAZ1" .1.3.6.1.4.1.9.10.24.1.2.2.1.4.2.
53969 = STRING: "
UGWGOP11"
Dabei handelt es sich um zwei Ergebnisse die in einer Zeile stehen, nämlich:
.1.3.6.1.4.1.9.10.24.1.2.2.1.4.2.
31990 = STRING: "
UGWGRAZ1"
und
.1.3.6.1.4.1.9.10.24.1.2.2.1.4.2.
53969 = STRING: "
UGWGOP11"
Allerdings kann es mal auch nur ein Ergebnis, oder mehr sein, aber immer im Format: .1.3.6.1.4.1.9.10.24.1.2.2.1.4.2.
<id> = STRING: "
<Name>"
Mich interessieren hier die Teile: "
31990" / "
UGWGRAZ1" sowie "
53969" / "
UGWGOP11" mit denen ich weiterarbeiten muß
Hier ein Beispielskript wie ich es versucht habe. Es mißlingt aber weil das Ergebnis nicht wirklich als Array, sondern als eine einzelne Zeile vorliegt
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#/bin/bash
# Ergebnis von einem SNMPWALK:
array='.1.3.6.1.4.1.9.10.24.1.2.2.1.4.2.31990 = STRING: "UGWGRAZ1" .1.3.6.1.4.1.9.10.24.1.2.2.1.4.2.53969 = STRING: "UGWGOP11"'
for ((i=0; i<${#array[*]}; i++)) do
id=`echo ${array[$i]} | awk -F' ' '{print $1}' | awk -F. '{print $17}'` # ID ermitteln
partner=`echo ${array[$i]} | awk -F' ' '{print $4}' | tr -d '"'` # Name ermitteln und Hochkommas entfernen
echo $id
echo $partner
done
|
Ich bekomme hier nur die Ergebniss des ersten Teils, also "31990" und "UGWGRAZ1" mit echo ausgegeben.
|
Quellcode
|
1
2
3
|
./test2.sh
31990
UGWGRAZ1
|
Was mache ich hier falsch, bzw. wie kann ich beliebig viele Ergebnisse verarbeiten?
Ich hoffe mir kann da jemand weiterhelfen.
Gruß
Michael