Archive

Kategorien

Einen String mittels awk am letzten Trenner splitten

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

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">

  

  

  

one × two =

This site uses Akismet to reduce spam. Learn how your comment data is processed.