Linux - script, grep, regular expression sowie XML

Hier findest du Informationen und Hilfen zu Betriebssystemen wie Linux oder auch Windows!

Linux - script, grep, regular expression sowie XML

Beitragvon Timmii » Di 4. Mai 2010, 13:16

Alle die grep nutzen wissen wie leicht man etwas damit finden kann,
doch das ganze in einem Script zu nutzen und Elemente aus einer XML Datei auslesen ist meist nicht so einfach überall beschrieben.

Ich stelle das ganze mal am auslesen eines Ports und einer ID aus XML Dateien dar.
Die Ergebnisse sollen dabei in eine Variable im Script gespeichert werden um sie dann weiter nutzen zu können.

Erstmal zum grep Befehl:

grep -o "<xml_tag>[0-9].*</xml_tag>" DATEI | grep -o "[0-9]\{1,\}"
mit dem ersten grep hole ich mir den gewollten Tag,
-o liefert dabei nur das Pattern entsprechende Ergebnis und nicht die ganze Zeile.

grep 2 liefert mir den Wert des Tags, mindestens 1 bis beliebig viele Zahlen.
[a-zA-Z0-9]{1,}(?=<\/) würde beliebigen Inhalt ohne Sonderzeichen suchen, leider scheint das nur in Regular Expression Editoren zu klappen.

Speichern des Ergebnisses in einer Variable.
variableport=`grep -o "<port>[0-9].*</port>" DATEI | grep -o "[0-9]\{1,\}"`
variableid=`grep -o "<port>[0-9].*</port>" DATEI | grep -o "[0-9]\{1,\}"`

Sieht eigentlich ganz einfach aus, das Einschließen des Befehls in die `` Zeichen veranlassen den Interpreter den Inhalt als Befehl und nicht als String zu behandeln.


Das ganze kann so nur bei einem eindeutigen Tag in der Datei genutzt werden. Evtl. kann ich das hier später erweitern.

RegularExpression Editoren:
http://myregexp.com/
http://rubular.com/
Benutzeravatar
Timmii
Forumcheffe
 
Beiträge: 10
Registriert: Fr 15. Jan 2010, 10:01
Wohnort: Berlin

Zurück zu Betriebssysteme

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron