In Bash einen String aus HTML/XML-Tags extrahieren

Erstellt: 21.01.2011 15:30

Will man diverse Files auswerten welche man z.B. über "wget" oder anderes aus dem Web besorgt hat, ist es immer mal wieder nötig Werte zu bekommen, welche zwischen zwei HTML- oder XML-Tags liegen. Um diesen Wert zwischen diesen zwei Tags zu extrahieren, leistet "sed" gute Dienste.

Hier die Beispieldatei "xmlfile" aus welchem der Wert "WAHTiNEED" der zwischen den beiden Tags "<key></key>" liegt herausgefiltert werden soll:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<LoginResponse xmlns="urn:internalvim25"><returnval><key>WHATiNEED</key><userName>username</userName><fullName>username</fullName><loginTime>1970-06-25T13:51:06.256885+01:00</loginTime><lastActiveTime>1970-06-25T13:51:06.256885+01:00</lastActiveTime><locale>en</locale><messageLocale>en</messageLocale></returnval></LoginResponse>
</soapenv:Body>
</soapenv:Envelope>

...und hier der sed-String:

sed -n -e 's/.*<key>\(.*\)<\/key>.*/\1/p' Filename

...welcher "WHATiNEED" erfolgreich filtert:

$ sed -n -e 's/.*<key>\(.*\)<\/key>.*/\1/p' xmlfile
WHATiNEED

Tagged: Bash HTML/CSS Linux Regex


Ähnliche Artikel:
Markdown-Files unter Linux im Terminal darstellen
Aliase umgehen
Datei Zeilenweise auslesen in Bash
chmod, Rechte nur bei Dateien oder Verzeichnissen ändern
echo ist nicht immer gleich echo - Internal Server Error

« Vorheriger Eintrag

Nächster Eintrag »

Kommentare

Verfasse den ersten Kommentar!

Kommentar verfassen