Hallo,
ich versuche gerade ein script zu schreiben was mir per snmp eine mac adresse von einem switch ausliest. das ist noch kein problem als ausgabe erhalte ich folgendes
"SNMPv2-SMI::enterprises.11.2.14.11.5.1.9.4.2.1.2.9.0.80.141.96.245.78 = Hex-STRING: 00 50 8D 60 F5 4E"
also kein Problem setze ich AWK an und lasse mir spalte 4,5,6,7,8,9 anzeigen und setze dazwischen doppelpunkte
das wollte ich so machen
snmpwalk -v 2c -c public 192.168.0.250 SNMPv2-SMI::enterprises.11.2.14.11.5.1.9.4.2.1.2.9 | awk '{print $4":"$5":"$6":"$7":"$8":"$9}'`
allerdings
das verwunderliche ist die ausgabe danach
00:50:8D:AA:AA:AA :::::
wie zum geier kommen die Doppelpunkte da ans Ende ran ? und ich weiß auch nicht wie ich sie wegbekomme.
hat da jemand eventuell einen Tip für mich woran das liegen könnte?
Ich bedanke mich schon mal und wünsche einen guten Rutsch und ein gesundes neues Jahr
Falconx:
awk will nicht so wie ich will
Hi,
ein frohes neues Jahr erst mal!
So, nun zum Thema: Nachdem ich auf den ersten Blick weder im Gedankengang noch in der Ausführung einen Fehler sehen konnte, habe ich einfach mal die Beispielsausgabe und das awk.Script mittels C'n'P übernommen und ausgeführt. Also steht jetzt in der Datei "snmpout.txt":Und der Aufruf lautet:Und der Output ist dann auch wie erwartet: Dein Problem ist also mit den hier geposteten Daten nicht nachzuvollziehen...
Was ich jetzt mal tippen würde: Gibt Dir snmpwalk mehr als nur eine Zeile aus? Weil vor den geschweiften Klammern keine Auswahlbedingung steht, greift das Skript für jede Eingabezeile - auch Leerzeilen beispielsweise. Und da dann in $4 - $9 nix drin steht, bekommst Du eine Reihe Doppelpunkte. Weshalb da aber u.a. falsche Werte und kein Zeilenvorschub herauskommen, kann ich mir so auch nicht erklären. Ist das wirklich so die exakte Ausgabe?
Jochen
ein frohes neues Jahr erst mal!
So, nun zum Thema: Nachdem ich auf den ersten Blick weder im Gedankengang noch in der Ausführung einen Fehler sehen konnte, habe ich einfach mal die Beispielsausgabe und das awk.Script mittels C'n'P übernommen und ausgeführt. Also steht jetzt in der Datei "snmpout.txt":
Code: Select all
SNMPv2-SMI::enterprises.11.2.14.11.5.1.9.4.2.1.2.9.0.80.141.96.245.78 = Hex-STRING: 00 50 8D 60 F5 4E
Code: Select all
awk '{print $4":"$5":"$6":"$7":"$8":"$9}' < snmpout.txt
Code: Select all
00:50:8D:60:F5:4E
Was ich jetzt mal tippen würde: Gibt Dir snmpwalk mehr als nur eine Zeile aus? Weil vor den geschweiften Klammern keine Auswahlbedingung steht, greift das Skript für jede Eingabezeile - auch Leerzeilen beispielsweise. Und da dann in $4 - $9 nix drin steht, bekommst Du eine Reihe Doppelpunkte. Weshalb da aber u.a. falsche Werte und kein Zeilenvorschub herauskommen, kann ich mir so auch nicht erklären. Ist das wirklich so die exakte Ausgabe?
Jochen
Die grösste Lüge der EDV? "Mal eben..."
Hi,
Gruss,
Alex
Das passiert immer dann, wenn die Ausgabe mehrere Zeilen hat. Vermutlich gibt snmpwalk noch eine Leerzeile oder aehnliches aus. Da es in einer Leerzeile keine Spalte 4,5,6,7,8 oder 9 gibt, bekommst du auch nur Doppelpunkte.allerdings
das verwunderliche ist die ausgabe danach
00:50:8D:AA:AA:AA :::::
Gruss,
Alex
Also wenn Du schon den awk benutzst, kannst Du Dir head auch sparen:Die Auswahlbedingung bewirkt, dass die Aktion nur für die erste Zeile ausgeführt wird.
Jochen
Code: Select all
awk 'NR == 1 {print $4":"$5":"$6":"$7":"$8":"$9}'
Jochen
Die grösste Lüge der EDV? "Mal eben..."