Subject aus Mail in Variable schreiben

I

Ildefonso

Jungspund
Möchte aus einem Textfile alles was nach "Subject:" kommt bis zum nächsten Zeilenvorschub in eine Shell-Script-Variable schreiben. Das Textfile sieht ungefähr so aus:
Code:
From: <krawuzi@kapuzi.com>
Subject:Jupiter

Body:
Lieber Franz!

Gerne .......

Code:
grep Subject: mail.txt
Subject:Jupiter

Ich möchte "Subject:" davor abschneiden und das Ergebnis einer Variable zuweisen. Wie mache ich das?
 
Code:
VAR1=$(grep Subject: mail.txt | awk -F: '{ print $2 }')
 
Boah, immer mit Kanonen auf die Spatzen schiessen, wa? Wer nimmt den awk für sowas? :-)
Ildefonso: Alternative Lösungen wären noch die folgenden:
Code:
$ echo "Subject:Jupiter" | tail -c+9 # Alles ab dem 9. Byte ausgeben
Jupiter
$ echo "Subject:Jupiter" |cut -c 9- # Alles ab dem 9. Zeichen ausgeben
Jupiter
$ echo "Subject:Jupiter" |cut -d ":" -f 2- # Alle Felder ab dem 2. Feld ausgeben, mit Feldtrenner :
Jupiter
echo "Subject:Jupiter" | sed -e 's/^Subject: *//' # Suche und ersetze "Subject:" mit bel. vielen Leerzeichen dahinter durch ""

Die awk-Lösung ist natürlich nicht zu bemängeln. Awk ist sowas wie das Schweizer Offiziersmesser und die anderen Programme sind auch oft mal nützlich. cut und tail sind nützliche kleine Tools, wie man sie bedient erfährst du über den Befehl man cut oder man tail.

P.S.: Wenn schon awk, dann bitte richtig :-)
Code:
VAR1=$(awk -F: '/^Subject:/ {print $2 }'  mail.txt)
 

Ähnliche Themen

CentOS 5.8 –SQL Abfrage– HTML wird generiert und daraus müssen mehrere Mails versendet werden

Teil einer Variablen auslesen und in neue Variable schreiben

Variable automatisch hochsetzten

Variable / Array abschneiden

Newbie sucht Hilfe: Zahl aus Datei mit grep/cut/sed lesen und schreiben?

Zurück
Oben