Ich war auf der Suche um bei einer solchen Logzeile von Postfix zuverlässig den Betreff auszulesen
1 | Jan 19 12:39:55 mx01 postfix/cleanup[10986]: 8BA1C40148: warning: header Subject: Re: PDFs getting mangled from host.example.tld[XX.YY.ZZ.ZZ]; from=<REDACTED> to=<REDACTED> proto=ESMTP helo=<REDACTED> |
Das zu suchende Subject wäre hier Re: PDFs getting mangled. Alles danach gehört nicht mehr zum Betreff.
Ein Suchmuster könnte so ausschauen: finde alles nach «: header Subject: » aber nur bis «from»
Das wird problematisch wenn der Betreff selber den String «from» enthält. Also muss man das letzte Vorkommen von «from» finden, um das Ende des Betreffs zu ermitteln.
Nach einigem Probieren (äh entwickeln) ist Folgendes herausgekommen:
1 | grep ': header Subject: ' /var/log/ext/mailservers/mail.log|awk -F': header Subject: |;' '{print $2}'|awk -F' from ' '{OFS=" from ";NF--;print $0}' |
Leave a Reply