[solved] String auswerten

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
tobiasd
Beiträge: 95
Registriert: 03.02.2011 15:23:12
Lizenz eigener Beiträge: GNU General Public License

[solved] String auswerten

Beitrag von tobiasd » 16.08.2013 18:10:45

Hallo zusammen,

Ein Python Script extrahiert meine E-Mails in Text + Anhang. Um jetzt den reinen Anhang automatisiert weitersenden zu können brauche ich die E-Mail (info_max-muster.de das @ Zeichen ist erstmal egal!) als Variable.

Der String sieht wie folgt aus:
__Mueller__Thomas____01232382898_fax.local___Max_Muster_GmbH___info_max-muster.de__testfax.pdf

info_max-muster.de soll am Ende in der Variable stehen. Die Domain max-muster.de ist immer gleich. Was sich ändert ist der kursive Teil des Strings mit Ausnahme der 3 Underscores vor info_max-muster.de

Hat jemand eine Idee wie ich das zuverlässig lösen kann? Ich hab bereits ein paar Versuche mit grep in Kombination von sed gestartet. Allerdings schaffe ich es nicht die Suchanker an den richtigen Stellen zu positionieren.

Grüße

Tobias
Zuletzt geändert von tobiasd am 23.08.2013 13:21:37, insgesamt 1-mal geändert.

Liffi
Beiträge: 2345
Registriert: 02.10.2004 01:33:05

Re: String auswerten

Beitrag von Liffi » 16.08.2013 18:53:20

Warum erweiterst du nicht das python Skript? Darin kannst du ja auf die drei Underscores, dann nicht Underscore+, Underscore gefolgt von max-muster.de matchen.

wanne
Moderator
Beiträge: 7552
Registriert: 24.05.2010 12:39:42

Re: String auswerten

Beitrag von wanne » 16.08.2013 23:21:04

Wenn das immer gleichviele durch mehrere _ getrennte Felder sind (klingt stabieler):

Code: Alles auswählen

echo $(echo "__Mueller__Thomas____01232382898_fax.local___Max_Muster_GmbH___info_max-muster.de__testfax.pdf" | sed -E 's/_+/\t/g' | cut -f9)@max-muster.de
Wenn nur das max-muster.de gleich bleibt:

Code: Alles auswählen

echo "__Mueller__Thomas____01232382898_fax.local___Max_Muster_GmbH___info_max-muster.de__testfax.pdf" | sed -E 's,^.*___(.*)_(max-muster.de).*$,\1@\2,1
mit testfax.pdf:

Code: Alles auswählen

echo "__Mueller__Thomas____01232382898_fax.local___Max_Muster_GmbH___info_max-muster.de__testfax.pdf" | sed -E 's,^.*___(.*)_(max-muster.de)__testfax.pdf$,\1@\2,1'
Wenn das @ ein _ beliben soll:

Code: Alles auswählen

echo "__Mueller__Thomas____01232382898_fax.local___Max_Muster_GmbH___info_max-muster.de__testfax.pdf" | sed -E 's,^.*___(.*_max-muster.de)__testfax.pdf$,\1,1'
Warum erweiterst du nicht das python Skript? Darin kannst du ja auf die drei Underscores, dann nicht Underscore+, Underscore gefolgt von max-muster.de matchen.
Warum ein 8MiB Paket installieren und ne richtige Programmiersprache (OK, GNU-sed ist auch turing-vollständig aber davon merkt man nichts, solange man nur reguläre ausdrücke nutzt.) lernen um eine Aufgabe zu erledigen, die en 68K Tool, das sowieso schon im System ist genau für die Aufgebe gemacht ist?
rot: Moderator wanne spricht, default: User wanne spricht.

Liffi
Beiträge: 2345
Registriert: 02.10.2004 01:33:05

Re: String auswerten

Beitrag von Liffi » 17.08.2013 07:01:35

wanne hat geschrieben:
Warum erweiterst du nicht das python Skript? Darin kannst du ja auf die drei Underscores, dann nicht Underscore+, Underscore gefolgt von max-muster.de matchen.
Warum ein 8MiB Paket installieren und ne richtige Programmiersprache (OK, GNU-sed ist auch turing-vollständig aber davon merkt man nichts, solange man nur reguläre ausdrücke nutzt.) lernen um eine Aufgabe zu erledigen, die en 68K Tool, das sowieso schon im System ist genau für die Aufgebe gemacht ist?
Weil er Python schon installiert hat und der String durch ein Python Skript entsteht?! Sonst hätte ich vermutlich auch sed vorgeschlagen.

wanne
Moderator
Beiträge: 7552
Registriert: 24.05.2010 12:39:42

Re: String auswerten

Beitrag von wanne » 17.08.2013 10:47:19

Liffi hat geschrieben:Weil er Python schon installiert hat und der String durch ein Python Skript entsteht?! Sonst hätte ich vermutlich auch sed vorgeschlagen.
Jaja, wer lesen kann ist klar im vorteil :oops:
rot: Moderator wanne spricht, default: User wanne spricht.

tobiasd
Beiträge: 95
Registriert: 03.02.2011 15:23:12
Lizenz eigener Beiträge: GNU General Public License

Re: String auswerten

Beitrag von tobiasd » 23.08.2013 13:21:24

Danke für die Antworten.

echo "__Mueller__Thomas____01232382898_fax.local___Max_Muster_GmbH___info_max-muster.de__testfax.pdf" | sed -E 's,^.*___(.*)_(max-muster.de).*$,\1@\2,1

hat super funktioniert :)

Antworten