ubuntuusers.de

Bestimmten wert aus datei auslesen

Status: Gelöst | Ubuntu-Version: Ubuntu 15.10 (Wily Werewolf)
Antworten |

Ringo1985

Avatar von Ringo1985

Anmeldungsdatum:
18. September 2007

Beiträge: 89

Wohnort: Bad Salzuflen

Moin!

Ich möchte gerne nen email-check-skript schreiben welches schaut ob auf gmail.com eine neue E-Mail eingegangen ist. Das abgreifen geht auch gut. Fange das mit "curl -u" ab und speichere die ausgabe in eine Textdatei. Die soll dann ausgelesen werden und zwar nur der Titel der E-Mail "<title>Testmail</title>" eventuell auch noch der Text: "<summary>Hallo du da!</summary>".

Mit "cut" kann mann das dann auch auslesen läuft auch aber was is wenn "<title>" nicht an der stelle ist. Jetzt fängt es zb bei Zeichen 340 an und hört bei Zeichen 400 auf. Meine frage daher kann man genau nach dem Inhalt suchen zwischen "<title>" und </title>?

Hab mich schon bei google bemüht zu suchen aber nicht brauchbares gefunden und dazu kommt das ich in dem fall auch noch ein newbie bin 😉

Vielleicht hat einer ne gute idee!

Lg Ringo

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

Ringo1985 schrieb:

Ich möchte gerne nen email-check-skript schreiben welches schaut ob auf gmail.com eine neue E-Mail eingegangen ist.

Dafür würde ich IMAP nehmen.

Das abgreifen geht auch gut. Fange das mit "curl -u" ab und speichere die ausgabe in eine Textdatei.

Das ist aber sehr umständlich oder?

Die soll dann ausgelesen werden und zwar nur der Titel der E-Mail "<title>Testmail</title>" eventuell auch noch der Text: "<summary>Hallo du da!</summary>". Meine frage daher kann man genau nach dem Inhalt suchen zwischen "<title>" und </title>?

Mit IMAP hättest du ein ordentliches Protokoll, für das es auch viele Bibliotheken gibt. Dann kannst du dir das HTML-Parsen schenken. Solltest du das trotzdem mit HTML-Parsing machen wollen, guck dir mal xpath an.

Ansonsten gibt es IMAP-Bibliotheken beispielsweise für Perl, Python, PHP und viele weitere Programmier- und Skriptsprachen. Meines Erachtens wäre das das Mittel der Wahl.

Hab mich schon bei google bemüht zu suchen aber nicht brauchbares gefunden und dazu kommt das ich in dem fall auch noch ein newbie bin 😉

Also mit den Suchbegriffen "bash gmail check new" hab ich ganz spontan das hier gefunden. Das ist sicherlich nicht die beste Lösung, aber es ist eine, die man bei Google findet 😉

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13216

Ich stimme misterunknown voll zu: IMAP und eine passende Bibliothek machen Dir das Leben deutlich leichter.

Generell kann man den Wert zwischen zwei Tags so aus einer Datei extrahieren, wenn die Tags auf einer Zeile stehen:

1
2
3
4
5
# from file
sed -ne 's#^.*<title>\(.*\)</title>.*$#\1#p' datei

# from curl
curl ... | sed -ne 's#^.*<title>\(.*\)</title>.*$#\1#p'

xmlstarlet ist aber ein wesentlich besseres Werkzeug dafür. Du brauchst nur den XPath "//title[1]".

Ringo1985

(Themenstarter)
Avatar von Ringo1985

Anmeldungsdatum:
18. September 2007

Beiträge: 89

Wohnort: Bad Salzuflen

Jau vielen Dank dafür schon mal werde mir am WE das mal zu Gemüte führen!!

Antworten |