Sendungsdaten aus den Auftragsbestätigungen (EMails) extrahieren und für eine Tabellenkalkulation/Datenbank formatieren:
1. Die gewünschten EMails makieren und in einer Exportdatei (eml, txt) speichern.
2. Gewünschte Daten mit grep extrahieren.
grep -oh -e "Auftragsnummer: ..........." -e "Gesamtpreis:......EUR" -e "name=\"Paketschein_.*pdf" myHermes*
grep Parameter:
-o
, –only-matching zeigt nur den Teil einer Zeile, der zu MUSTER passt
-h, –no-filename unterdrückt die Ausgabe des vorangehenden Dateinamens
-e, –regexp=MUSTER MUSTER als regulären Ausdruck verwenden.
Ausgabe würde dann so aussehen:
Auftragsnummer(1)
Gesamtpreis(1)
Paketschein_.*pdf(1)
Auftragsnummer(2)
Gesamtpreis(2)
Paketschein_.*pdf(2)
.(x)
.(x)
.(x)
Um die Ausgabe in eine TAB oder Semikolon getrennte Liste zu überführen wird das Zeilenende mit sed ersetzt.
Zuerst jedes 3te Zeilenende mit einem temporären Zeichen das nicht vorkommt, dann alle Zeilenenden durch Semikolon ersetzen, dann alle Zeilenenden durch ein Leerzeichen und zum guter letzt das temporäre Zeichen (#) durch einen Zeilenumbruch. Die ganze Ausgabe umleiten in eine Datei.csv und fertig!
grep -oh -e "Auftragsnummer: ..........." -e "Gesamtpreis:......EUR" -e "name=\"Paketschein_.*pdf" myHermes* | sed -e '0~3s/$/#/g' -e 's/$/;/g'|sed -z 's/\n/ /g'|sed -e 's/#/\n/g'>Final.csv
sed Parameter:
-e skript, –expression=skript hängt `skript‘ an die auszuführenden Befehle an
-z, –null-data Zeilen durch NUL-Zeichen voneinander trennen
Links:
http://openbook.rheinwerk-verlag.de/shell_programmierung/shell_013_000.htm#Xxx999276
https://wiki.ubuntuusers.de/grep/
http://openbook.rheinwerk-verlag.de/shell_programmierung/shell_014_004.htm
https://wiki.ubuntuusers.de/sed/
https://www.gnu.org/software/sed/manual/sed.html#Multiple-commands-syntax
https://stackoverflow.com/questions/1251999/how-can-i-replace-a-newline-n-using-sed