Zum Inhalt springen

Bash - Regular Expressions beim Parsen einer Datei


praetorian1607

Empfohlene Beiträge

Hallo zusammen,

Mein Chef hat mir letztens eine kleine Aufgabe gegeben, aber ich hänge gerade ein wenig fest.

Auf einem Webserver liegt eine XML - Datei, die Temperaturwerte von Sensoren in unserem Serverraum enthält. Das Script soll die Werte auslesen und eine Warnung ausgeben wenn eine bestimmte Temperatur überschritten wird. Hört sich ja erstmal garnicht so schwierig an. Mein Problem besteht allerdings darin die richtigen Werte aus der XML Datei auszulesen. Mein Chef meinte das ginge über regular expressions, allerdings habe ich davon nicht wirklich viel Ahnung. Auch nicht wie das Parsen einer Datei genau funktioniert.

Hat vielleicht ein guter Programmierer hier ein paar Ideen wie man das umsetzen könnte oder eine kleine Erklärung zum Parsen einer Datei? Bitte keinen Code denken will ich noch allein ;-)

MFG praetorian

Link zu diesem Kommentar
Auf anderen Seiten teilen

Warum hast Du Deine Frage nicht im passenden Linuxforum gepostet? Dahin würde sie gehören.

Ich würde Dir davon abraten mit regulären Ausdrücken zu arbeiten, das kann später kein Mensch mehr lesen.

Da Du eine XML Datei hast, bietet sich an die Datei je nachdem was Du als Ziel damit vorhast, das ganze zu transformieren bzw. die Daten direkt abzufragen.

Zum Transformieren kannst Du XSL Transformation ? Wikipedia verwenden und zum direkten Daten extrahieren XQuery ? Wikipedia

Als Programm kannst Du z.B. Saxon (Software) ? Wikipedia verwenden.

Ich würde, da Du eine entsprechende Überwachung realisieren willst, ein Bashscript schreiben, das die Datei vom Server lädt, die Daten aus dem XML via XSLT in ein Flatfile transformiert und einlesen. Ändert sich das XML Format musst Du nur Deine XSLT anpassen. Weiterhin würde ich das dann in Nagios einbinden, damit Du auch direkt eine passende Benachrichtigung bekommst und die Überwachung durch Nagios gesteuert wird

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wieso Linux? Aber sei's drum.

Da gibt's verschiedene Herangehensweisen:

Noch simpler als irgendwelche XSL-Transformationen fände ich ein kleines C#/Mono-Programm, wo Du einfach ein XML-Dokument mit XDocument.Load() einlesen kannst, und dann kannst Du per LINQ selektieren, was Du brauchst. Hört sich kompliziert an, ist aber easy.

Für das reine Parsen böte sich auch einfach auch nur ein grep/findstr (bash/powershell) an.

RegExes wären ebenfalls eine Möglichkeit.

<TagName>([^<]+)

sucht nach allen Ausdrücken, die mit dem entsprechenden TagNamen beginnen. Von diesen Ausdrücken wird der Teil innerhalb der Runden Klammern benötigt. Das sind alle Zeichen, die nicht der spitzen Klammer/Kleinerzeichen entsprechen.

RegExes können schwer zu lesen sein - in dem Falle aber eher nicht.

Deiner Phantasie sind keine Grenzen gesetzt ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, über RegEx kann man sich streiten, die einen lieben es, die anderen hassen es. Ich finde, dass es ein gutes Werkzeug ist. Ok, meine alten RegEx mit Perl raffe ich auch nicht mehr, aber nur, weil ich keine vernünftige Dokumentation dazu hatte. Mein letzter Dozent hat die Dinger auch gehasst, aber mein momentaner Cheff findet die Dinger sehr sinnvoll. Also falls du RegEx benutzt, dann kann ich dir nur raten das Zeug gut zu dokumentieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...