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
[solved] String auswerten
-
- Beiträge: 95
- Registriert: 03.02.2011 15:23:12
- Lizenz eigener Beiträge: GNU General Public License
[solved] String auswerten
Zuletzt geändert von tobiasd am 23.08.2013 13:21:37, insgesamt 1-mal geändert.
Re: String auswerten
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.
Re: String auswerten
Wenn das immer gleichviele durch mehrere _ getrennte Felder sind (klingt stabieler):
Wenn nur das max-muster.de gleich bleibt:
mit testfax.pdf:
Wenn das @ ein _ beliben soll:
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
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
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'
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 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?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.
rot: Moderator wanne spricht, default: User wanne spricht.
Re: String auswerten
Weil er Python schon installiert hat und der String durch ein Python Skript entsteht?! Sonst hätte ich vermutlich auch sed vorgeschlagen.wanne hat geschrieben: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?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.
Re: String auswerten
Jaja, wer lesen kann ist klar im vorteilLiffi hat geschrieben:Weil er Python schon installiert hat und der String durch ein Python Skript entsteht?! Sonst hätte ich vermutlich auch sed vorgeschlagen.
rot: Moderator wanne spricht, default: User wanne spricht.
-
- Beiträge: 95
- Registriert: 03.02.2011 15:23:12
- Lizenz eigener Beiträge: GNU General Public License
Re: String auswerten
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
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