Email Daten zu Excel Grafik Screenshot

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
gugus
Beiträge: 381
Registriert: 04.09.2002 17:41:17
Wohnort: da wo ich zu Hause bin

Email Daten zu Excel Grafik Screenshot

Beitrag von gugus » 05.10.2023 12:56:54

Hallo zusammen
Ich arbeite gerade an einem kleinen Projekt bei dem ich alle paar Stunden Sensordaten via Email erhalte. Die Sensordaten werden im cvs Format, getrennt mit Semikolon geschickt. Ich verarbeite aktuell die Daten manuell und möchte dies nun automatisieren.

Um nicht gleich von Anfang in eine falsche Richtung zu laufen frage ich mal an ob dies so möglich ist.

Ausgangslage ist der manuelle Vorgang:
Empfangene Emails in einen lokalen Ordner speichern, eml Format
Mit sed die ersten 18 Zeilen Kopf und Betreff der Emails abschneiden und in eine Datei kopieren.

$1 ist Filialnummer

Code: Alles auswählen

sed -i "1,18d" 'Filiale: '$1*'.eml'
cat 'Filiale: '$1*'.eml' > $1.cvs 
Ergebnis:
05-10-23 07:18:38;20,12;444,50;76,24;6,27
05-10-23 07:19:22;20,12;444,60;76,25;6,31
...

Danach werden die Rohdaten aus der Datei in Openoffice calc in ein Datenblatt importiert.
Das Diagramm wird aktualisiert und ich erstelle ein screenshot der Grafik.
Diese Grafik soll dann verschickt werden.

Ich stelle mir vor dass ich auf meinem Server eine virtuelle Instanz einrichte (ich habe xen am Start) auf der dies alles verarbeitet wird.
Empfang der Emails - sendmail
Extract der Daten - sed / grep / oder ?
Aufbau der Grafik und als Bild speichern - grafana
Verschicken des Bildes - sendmail

Der ganze Datenunterbau soll kumulativ (jedes Email wird verarbeitet, die Daten werden angehängt) erfolgen.
Das Bild soll einmal pro 24 Stunden verschickt werden.
Bei Monatswechsel wird alles gespeichert und archiviert, für den nächsten Monat wird ein neuer Prozess gestartet.

Ich wäre froh um ein paar Kommentare ...

Gruss
gugus

chrbr
Beiträge: 551
Registriert: 29.10.2022 15:53:26

Re: Email Daten zu Excel Grafik Screenshot

Beitrag von chrbr » 05.10.2023 15:27:17

Ich würde wenn möglich den Office Teil nicht nutzen, sondern mit den Daten per gnuplot oder ähnlichen Programmen die Grafik erzeugen.

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Email Daten zu Excel Grafik Screenshot

Beitrag von bluestar » 05.10.2023 15:57:11

gugus hat geschrieben: ↑ zum Beitrag ↑
05.10.2023 12:56:54
Mit sed die ersten 18 Zeilen Kopf und Betreff der Emails abschneiden und in eine Datei kopieren.
Ich würde nicht hart auf die 18 Zeilen matchen, sondern die Leerzeile zwischen Mail-Header und Mail-Body.

Für die graphische Auswertung könntest du auch auf rrdtool setzen, den Office-Part würde ich dir ebenso wie mein Vorposter nicht empfehlen.

Evtl. fährst du nicht schlecht, wenn du deine Rohdaten auch noch in eine Datenbank (MariaDB oder Postgres) packst, dann hast du auch direkt noch ein Langzeitarchiv und kannst bei Bedarf auch andere Zeiträume graphisch aufwerten.

Benutzeravatar
GregorS
Beiträge: 2629
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: Email Daten zu Excel Grafik Screenshot

Beitrag von GregorS » 05.10.2023 16:10:32

Ich stimme @chrbr zu. Wie Du das Beschreibst, ist hinsichtlich der Erstellung des Diagramms Handarbeit nötig. Mit Gnuplot lässt sich das prima automatisieren.

Ich selbst beobachte meine Rechner, indem ich ein paar Systeminfos sammle (minütlich per cron) und bei Bedarf so eine Grafik daraus bastle: https://test.szaktilla.de/lili.pdf

Evtl. kannst Du mein Gnuplot-Script für Deine Zwecke anpassen:

Code: Alles auswählen

#!/usr/bin/gnuplot

FN1="/tmp/temperature.kpl.log"
FN2="/tmp/temperature.48hrs.log"
FN3="/tmp/temperature.24hrs.log"
FN4="/tmp/temperature.6hrs.log"

TI="Load/Temp./avail. RAM"

set fontpath "/usr/share/fonts/truetype"

set terminal postscript color \
    font "LiberationSansNarrow-Regular.ttf,7" \
    enhanced 
set output "/tmp/plot.ps"

set timefmt "%d.%m.%y-%H:%M:%S"
set xdata time
set xtics rotate by -30
set ytics 10

set y2tics 300
set ytics nomirror
set y2range [-150:3150]
set y2label "Net" offset -1

set grid
set yrange [-5:105]
set ylabel TI offset 1
set multiplot layout 2,2 rowsfirst \
    title TI font "LiberationSansNarrow-Regular.ttf,18"

set title "Alle Werte"
set format x "%d.%m"
plot FN1 using 1:3 smooth bezier title "Load ({/Symbol \306} 5 Minuten x 10)" with lines lc "#AADDAA", \
     FN1 using 1:5 smooth bezier title "CPU Temp. [{/Symbol \260}C]" with lines lc "#0000FF", \
     FN1 using 1:9 smooth bezier title "avail. RAM [%]" with lines lc "#AAAADD", \
     FN1 using 1:10 smooth bezier title "Net [kBit/s]" axis x1y2 with lines lc rgb "#DDAAAA";

set title "{/Symbol \263} 48 Stunden"
set format x "%d.%m"
plot FN2 using 1:3 smooth bezier title "Load ({/Symbol \306} 5 Minuten x 10)" with lines lc "#AADDAA", \
     FN2 using 1:5 smooth bezier title "CPU Temp. [{/Symbol \260}C]" with lines lc rgb "#0000FF", \
     FN2 using 1:9 smooth bezier title "avail. RAM [%]" with lines lc rgb "#AAAADD", \
     FN2 using 1:10 smooth bezier title "Net [kBit/s]" axis x1y2 with lines lc rgb "#DDAAAA";

set title "{/Symbol \263} 24 Stunden"
set format x "%d.%m, %H:%M"
plot FN3 using 1:3 title "Load ({/Symbol \306} 5 Minuten x 10)" with lines lc rgb "#AADDAA", \
     FN3 using 1:5 title "CPU Temp. [{/Symbol \260}C]" with lines lc rgb "#0000FF", \
     FN3 using 1:9 title "avail. RAM [%]" with lines lc rgb "#AAAADD", \
     FN3 using 1:10 title "Net [kBit/s]" axis x1y2 with lines lc rgb "#DDAAAA";

set title "{/Symbol \263} 6 Stunden"
set format x "%d.%m, %H:%M"
plot FN4 using 1:3 title "Load ({/Symbol \306} 5 Minuten x 10)" with lines lc rgb "#AADDAA", \
     FN4 using 1:5 title "CPU Temp. [{/Symbol \260}C]" with lines lc rgb "#0000FF", \
     FN4 using 1:9 title "avail. RAM [%]" with lines lc rgb "#AAAADD", \
     FN4 using 1:10 title "Net [kBit/s]" axis x1y2 with lines lc rgb "#DDAAAA";

#eof
HTH

Gregor

PS: Die verlinkte PDF-Datei ist mit einer anderen Version des Scripts entstanden. Das PDF ist eine „Spezialanfertigung“, mit der ich zwei Monate vergleiche. Du kannst da nicht hundertprozentig vom Script auf die Grafik schließen - der wesentliche Unterschied sind aber lediglich die Zeiträume.
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

gugus
Beiträge: 381
Registriert: 04.09.2002 17:41:17
Wohnort: da wo ich zu Hause bin

Re: Email Daten zu Excel Grafik Screenshot

Beitrag von gugus » 06.10.2023 11:22:31

Hallo zusammen
Da ich mich gerade am Einlesen bin möchte ich zwischendurch doch nachfragen.

Für die Email Accounts (aktuell 7) verwende ich fetchmail und zum sortieren procmail. Da brauche ich ja kein Mutt, richtig?
Das Mailformat ist maildir, da werden die Mails einzeln als Datei abgelegt.
Mit egrep hole ich die Daten aus dem Mails und kopiere diese zusammen mit einfacher Umleitung.
Wobei ich beim greppen auf Tag und Monat an Anfang jeder Zeile setze.

Code: Alles auswählen

egrep -h [0-9][0-9]\-[0-9][0-9] *.eml > $filiale.csv

05-10-23 19:08:06;19,31;482,60;82,75;12,73
...
Mit csvsort sortiere ich vorsichtshalber die filiale.csv

so far...
gruss
gugus

chrbr
Beiträge: 551
Registriert: 29.10.2022 15:53:26

Re: Email Daten zu Excel Grafik Screenshot

Beitrag von chrbr » 06.10.2023 12:40:55

gugus hat geschrieben: ↑ zum Beitrag ↑
06.10.2023 11:22:31
Für die Email Accounts (aktuell 7) verwende ich fetchmail und zum sortieren procmail. Da brauche ich ja kein Mutt, richtig?
Richtig. Falls du dich noch nicht in promail eingearbeitet hast wäre maildrop eine Alternative. IMHO hat procmail den Ruf, dass unter widrigen Umständen Mails "verschwinden" könnten. Mir ist das allerdings noch nicht bewusst passiert.
gugus hat geschrieben: ↑ zum Beitrag ↑
06.10.2023 11:22:31
Das Mailformat ist maildir, da werden die Mails einzeln als Datei abgelegt.
Stimmt. Dabei hat jeder Mail Ordner die Unterverzeichnisse "new", "cur" und "tmp". Ungelesene Mails werden normalerweise in den "new" Unterordner abgelegt. Wenn man sie mit einem Mailreader wie mutt gelesen hat, dann werden sie vom Mailreader nach "cur" verschoben.

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Email Daten zu Excel Grafik Screenshot

Beitrag von bluestar » 06.10.2023 12:51:53

gugus hat geschrieben: ↑ zum Beitrag ↑
06.10.2023 11:22:31
Für die Email Accounts (aktuell 7) verwende ich fetchmail und zum sortieren procmail. Da brauche ich ja kein Mutt, richtig?
Das Mailformat ist maildir, da werden die Mails einzeln als Datei abgelegt.
Du könntest dir auch den Umweg über procmail und maildir sparen und direkt über die mda Option von fetchmail dein Script starten:

Code: Alles auswählen

mda "/usr/local/bin/mail-auswerter.sh"

gugus
Beiträge: 381
Registriert: 04.09.2002 17:41:17
Wohnort: da wo ich zu Hause bin

Re: Email Daten zu Excel Grafik Screenshot

Beitrag von gugus » 06.10.2023 14:06:28

Ja, ich bin noch nirgends tief drin, bin noch am vorsortieren... es soll am Ende nicht zu kompliziert sein.

maildrop kommt auf die Liste

Die mda Option in fetchmail klingt interesant da ich eh nur auslese und die Mails in eine csv Datei greppe.
Muss mir aber noch etwas überlegen wie ich die Daten sinnvoll über die Wochen/Monate handhabe.

chrbr
Beiträge: 551
Registriert: 29.10.2022 15:53:26

Re: Email Daten zu Excel Grafik Screenshot

Beitrag von chrbr » 06.10.2023 14:14:46

bluestar hat geschrieben: ↑ zum Beitrag ↑
06.10.2023 12:51:53
Du könntest dir auch den Umweg über procmail und maildir sparen und direkt über die mda Option von fetchmail dein Script starten:

Code: Alles auswählen

mda "/usr/local/bin/mail-auswerter.sh"
Das ist natürlich die beste Idee. Dann muss man auch nicht alte Mails löschen. Die Mails kommen dann über STDIN in das Skript. Damit kann man auch ganz einfach Testmails in das Skript einspielen. Perfektemeng wie der Franzose sagen würde :THX: .

gugus
Beiträge: 381
Registriert: 04.09.2002 17:41:17
Wohnort: da wo ich zu Hause bin

Re: Email Daten zu Excel Grafik Screenshot

Beitrag von gugus » 06.10.2023 16:23:32

Blöde Frage, wie werden dann die Mails der Accounts zwischengespeichert ?
Wird für jeden account gemäss fetchmailrc nacheinander ein "Kanal" geöffnet der dann durch das Script läuft.

chrbr
Beiträge: 551
Registriert: 29.10.2022 15:53:26

Re: Email Daten zu Excel Grafik Screenshot

Beitrag von chrbr » 06.10.2023 16:39:08

Mit der Methode

Code: Alles auswählen

mda "/usr/local/bin/mail-auswerter.sh"
wird nichts zwischengespeichert. Wenn eine Mail ankommt, dann ist das Text wie

Code: Alles auswählen

Return-Path: <godzilla@web.jp>
Delivered-To: fetchmail@localhost
Received: from lenovo.local (localhost [127.0.0.1])
	by lenovo.local (OpenSMTPD) with ESMTP id fa7780dd
	for <fetchmail@localhost>;
	Mon, 31 Jul 2023 12:57:58 +0000 (UTC)
Received: from secureimap.t-online.de [194.25.134.50]
	by lenovo.local with IMAP (fetchmail-6.4.37)
	for <fetchmail@localhost> (single-drop); Mon, 31 Jul 2023 14:57:58 +0200 (CEST)
Received: from mailin33.aul.t-online.de ([10.223.144.73])
...
Der Text wird dann wie über eine Pipe an mail-auswerter.sh "verfüttert". Wenn man die Mail als Datei mail.txt hätte, dann wäre das wie

Code: Alles auswählen

cat mail.txt|mail-auswerter.sh
Wenn du die Mails noch brauchst oder archivieren willst, dann kannst du die in dem Skript abspeichern. Einfacher ist es dann aber, die Mails mit procmail oder maildrop erst einmal abzuspeichern und später zu verarbeiten.

gugus
Beiträge: 381
Registriert: 04.09.2002 17:41:17
Wohnort: da wo ich zu Hause bin

Re: Email Daten zu Excel Grafik Screenshot

Beitrag von gugus » 06.10.2023 17:13:40

ah, ok.
Wenn ich nach sechs Stunden fetchmail aufrufe oder aufgerufen wird kommen alle Mails nacheinander.
Ich müsste dann, wenn es mehrere Accounts sind vor jedem grep checken welche Filiale gerade aktiv durchgegeben wird oder die Filiale in eine while Schlaufe verpacken. Dann müsste aber sichergestellt sein dass die Accounts immer gleich nacheinander abgerufen werden.

Oder ich kann auch entsprechende User am System anmelden und fetchmail einzeln starten.

Mal überlegen was hinten raus die bessere Variante ist.

Da es ja imap Accounts sind brauche ich mich um Kopien nicht kümmern da auf dem Server nichts gelöscht wird.

chrbr
Beiträge: 551
Registriert: 29.10.2022 15:53:26

Re: Email Daten zu Excel Grafik Screenshot

Beitrag von chrbr » 06.10.2023 17:31:55

gugus hat geschrieben: ↑ zum Beitrag ↑
06.10.2023 17:13:40
Wenn ich nach sechs Stunden fetchmail aufrufe oder aufgerufen wird kommen alle Mails nacheinander.
Ich habe eben nachgeschaut, was heute morgen in einem Block eingetroffen ist. Das waren vier Mails, die einzeln abgeholt wurden und einzeln an den MDA übergeben wurden. Zumindest sieht das in den Logfiles so aus.
gugus hat geschrieben: ↑ zum Beitrag ↑
06.10.2023 17:13:40
Da es ja imap Accounts sind brauche ich mich um Kopien nicht kümmern da auf dem Server nichts gelöscht wird.
Du musst nur daran denken, fetchmail mit der Option "keep" aufzurufen. Das müsste aber bei POP3 und IMAP gleich sein - wenn ich mich nicht täusche.

gugus
Beiträge: 381
Registriert: 04.09.2002 17:41:17
Wohnort: da wo ich zu Hause bin

Re: Email Daten zu Excel Grafik Screenshot

Beitrag von gugus » 07.10.2023 12:00:12

Danke für das Nachsehen.
Somit steht der Aufnahme aller Accounts in eine config von fetchmail nichts im Weg.

Und ja, keep ist in diesem Fall Pflicht.
:THX:

gugus
Beiträge: 381
Registriert: 04.09.2002 17:41:17
Wohnort: da wo ich zu Hause bin

Re: Email Daten zu Excel Grafik Screenshot

Beitrag von gugus » 07.10.2023 23:41:49

Hallo zusammen
Ich bin gerade dabei die Idee mit fetchmail und dem direkten weiterleiten des mda in ein script zu testen.
mda "/usr/local/bin/mail-auswerter.sh"

Für den Test habe ich das File Filiale-120.eml erstellt

Code: Alles auswählen

Return-Path: <adresse120@domain.de>
Delivered-To: adresse120@domain.de
Received: from mail.serverdomain.org
	by serverdomain.org with LMTP
	id d0FcG9JIIffggFFreek/134w
	(envelope-from <adresse120@domain.de>)
	for <adresse120@domain.de>; Sat, 07 Oct 2023 14:02:26 +0200
....
Subject: Filiale: 120 - Messwertreport

07-10-23 11:09:41;20,37;444,50;76,24;6,29
07-10-23 11:10:25;20,37;445,00;76,33;6,46
07-10-23 11:11:08;20,37;444,60;76,26;6,32
Das Script mit dem ich die Filialnummer extrahiere und in die Variable schreibe,
danach möchte ich die Zeilen beginnend mit dem Datums-Muster in die csv Datei mit der Filialnummer als Name schreiben.

Code: Alles auswählen

#!/bin/bash
egrep 'Delivered-To' | grep -o '[0-9]\+'

FILIALE = $(egrep 'Delivered-To' | grep -o '[0-9]\+')
echo $FILIALE

egrep -h [0-9][0-9]\-[0-9][0-9]\-[0-9][0-9] >> "$FILIALE.csv"
Der Output funktioniert genau bis nach dem ersten Grep

Code: Alles auswählen

cat Filiale-120.eml | ./mail-auswerter.sh

120
./mail-auswerter.sh: Zeile 6: FILIALE: Befehl nicht gefunden
Die beiden grep funktionieren einzeln aufgerufen

Code: Alles auswählen

cat Filiale-120.eml | egrep 'Delivered-To' | grep -o '[0-9]\+'

120

Code: Alles auswählen

cat Filiale-120.eml | egrep -h [0-9][0-9]\-[0-9][0-9]\-[0-9][0-9]

07-10-23 11:09:41;20,37;444,50;76,24;6,29
07-10-23 11:10:25;20,37;445,00;76,33;6,46
07-10-23 11:11:08;20,37;444,60;76,26;6,32
Ich bin mir nicht sicher ob es mit der direkten pipe so funktioniert oder ob doch maildrop eingesetzt werden muss.

rodney
Beiträge: 336
Registriert: 09.12.2016 04:15:59

Re: Email Daten zu Excel Grafik Screenshot

Beitrag von rodney » 08.10.2023 02:43:28

gugus hat geschrieben: ↑ zum Beitrag ↑
07.10.2023 23:41:49
Hallo zusammen
Ich bin gerade dabei die Idee mit fetchmail und dem direkten weiterleiten des mda in ein script zu testen.

Code: Alles auswählen

mda "/usr/local/bin/mail-auswerter.sh"

Für den Test habe ich das File Filiale-120.eml erstellt

Code: Alles auswählen

Return-Path: <adresse120@domain.de>
Delivered-To: adresse120@domain.de
Received: from mail.serverdomain.org
	by serverdomain.org with LMTP
	id d0FcG9JIIffggFFreek/134w
	(envelope-from <adresse120@domain.de>)
	for <adresse120@domain.de>; Sat, 07 Oct 2023 14:02:26 +0200
....
Subject: Filiale: 120 - Messwertreport

07-10-23 11:09:41;20,37;444,50;76,24;6,29
07-10-23 11:10:25;20,37;445,00;76,33;6,46
07-10-23 11:11:08;20,37;444,60;76,26;6,32
Das Script mit dem ich die Filialnummer extrahiere und in die Variable schreibe,
danach möchte ich die Zeilen beginnend mit dem Datums-Muster in die csv Datei mit der Filialnummer als Name schreiben.

Code: Alles auswählen

#!/bin/bash
egrep 'Delivered-To' | grep -o '[0-9]\+'

FILIALE = $(egrep 'Delivered-To' | grep -o '[0-9]\+')
echo $FILIALE

egrep -h [0-9][0-9]\-[0-9][0-9]\-[0-9][0-9] >> "$FILIALE.csv"
Der Output funktioniert genau bis nach dem ersten Grep

Code: Alles auswählen

cat Filiale-120.eml | ./mail-auswerter.sh

120
./mail-auswerter.sh: Zeile 6: FILIALE: Befehl nicht gefunden
Hier wird FILIALE als Befehl betrachtet. Moechtest du der Variablen FILIALE einen Inhalt zuweisen:

Code: Alles auswählen

FILIALE=$(egrep 'Delivered-To' | grep -o '[0-9]\+')
Die beiden grep funktionieren einzeln aufgerufen

Code: Alles auswählen

cat Filiale-120.eml | egrep 'Delivered-To' | grep -o '[0-9]\+'

120

Code: Alles auswählen

cat Filiale-120.eml | egrep -h [0-9][0-9]\-[0-9][0-9]\-[0-9][0-9]

07-10-23 11:09:41;20,37;444,50;76,24;6,29
07-10-23 11:10:25;20,37;445,00;76,33;6,46
07-10-23 11:11:08;20,37;444,60;76,26;6,32
Natuerlich funktioniert das, weil dein egrep -h... STDIN (was STDOUT von cat Filiale-120.eml gefuettert wird) durchsucht. In deinem Skript wird nichts nichts von grep durchsucht. Wenn du etwas (STDOUT von einem anderen Befehl) in dein Script pipen moechtest, musst du STDIN verarbeiten. Dein mail-auswerter.sh-Skript koennte in etwa so ausschauen:

Code: Alles auswählen

#!/bin/bash

standardeingabe=$(</dev/stdin)

FILIALE=$(grep -E 'Delivered-To' "${standardeingabe}" | grep -E -o '[0-9]\+')

grep -E -h [0-9][0-9]\-[0-9][0-9]\-[0-9][0-9] "${standardeingabe}" >> "${FILIALE}.csv"
# Version mit absolutem Pfad:
# grep -E [0-9][0-9]\-[0-9][0-9]\-[0-9][0-9] "${standardeingabe}" >> "/pfad/zur/datei/${FILIALE}.csv"
Anzumerken waere noch, dass deine zu befuellende Datei $FILIALE.csv in deinem Skript als relative Pfadangabe interpretiert wird. Hier waere ein absoluter Pfad empfehlenswert. Zudem habe ich die unnoetige Option -h aus deinem grep-Aufruf entfernt und egrep durch grep -E ersetzt was aber reine Geschmackssache ist.

gugus
Beiträge: 381
Registriert: 04.09.2002 17:41:17
Wohnort: da wo ich zu Hause bin

Re: Email Daten zu Excel Grafik Screenshot

Beitrag von gugus » 08.10.2023 10:45:26

Danke für die Erklärung.
Wenn ich es richtig verstehe wird stdin von fetchmail immer einzeln mit einem email befüllt das dann abgeholt wird.
standardeingabe=$(</dev/stdin)
Sobald das Script ein email abgearbeitet hat wird das nächste email eingefüllt.

Ist bei mir ja erstmal eine Trockenübung. Bevor ich alles aufsetzte möchte ich es verstehen wie das Ganze funktioniert.

Bei den Variablen vergesse ich immer wieder die spaces weg zu lassen. :?
Ich schreibe lieber egrep, ist aber ja grundsätzlich egal.
Die Option -h habe ich benutzt da beider manuellen Eingabe teilweise der Dateiname vorangestellt wurde.
Ja, über Pfade muss ich so oder so noch überlegen welches Konstrukt ich anlege da ich die Daten danach weiterverarbeite.

Jedenfalls besten Dank erstmal. :THX:

gugus
Beiträge: 381
Registriert: 04.09.2002 17:41:17
Wohnort: da wo ich zu Hause bin

Re: Email Daten zu Excel Grafik Screenshot

Beitrag von gugus » 08.10.2023 12:32:13

Mir fällt gerade auf dass wenn ich das Datum greppe

Code: Alles auswählen

grep -E -om1 [0-9][0-9]\-[0-9][0-9]\-[0-9][0-9]
07-10-23
ich das Ergebnis nicht als Datum verwenden kann da es falsch erkannt wird.
Ein

Code: Alles auswählen

date -d 07-10-23
Di 23. Okt 00:00:00 CEST 2007

date +%c -d "07-10-23"
Di 23 Okt 2007 00:00:00 CEST

date +%d-%m-%y -d "07-10-23"
23-10-07

date +%d-%m-%Y -d "07-10-23"
23-10-2007
Selbst wenn ich manuell die 20 davor setze

Code: Alles auswählen

date +%d-%m-%Y -d "07-10-2023"
date: ungültiges Datum »07-10-2023“
egal wie ich date formatiere es kommt immer 2007 anstelle von 2023
Kann ich das irgendwie umformatieren

Sorry für die einfachen Fragen aber ich finde nichts im Netz dazu.

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Email Daten zu Excel Grafik Screenshot

Beitrag von bluestar » 08.10.2023 12:38:45

gugus hat geschrieben: ↑ zum Beitrag ↑
08.10.2023 12:32:13
Selbst wenn ich manuell die 20 davor setze

Code: Alles auswählen

date +%d-%m-%Y -d "07-10-2023"
date: ungültiges Datum »07-10-2023“
Nunja date erwartet nunmal das Datumsformat [YY]YY-MM-DD

gugus
Beiträge: 381
Registriert: 04.09.2002 17:41:17
Wohnort: da wo ich zu Hause bin

Re: Email Daten zu Excel Grafik Screenshot

Beitrag von gugus » 08.10.2023 14:17:08

ok, das bedeutet dass ich den string umbauen muss. Irgendwie mit awk oder cut

gugus
Beiträge: 381
Registriert: 04.09.2002 17:41:17
Wohnort: da wo ich zu Hause bin

Re: Email Daten zu Excel Grafik Screenshot

Beitrag von gugus » 08.10.2023 15:20:52

So, habe eine Lösung gefunden

Code: Alles auswählen

mydat=$(date +"%y-%m-%d" -d "(cat Filiale-120.eml | egrep -om1 [0-9][0-9]\-[0-9][0-9]\-[0-9][0-9] | awk -F'-' '{print $3"-"$2"-"$1}')")
date -d $mydat
So 8. Okt 00:00:00 CEST 2023
Etwas lange aber funktioniert...
Die Filiale-120.eml wird dann durch die "${standardeingabe}" ersetzt.

Damit habe ich dann auch die Woche

Code: Alles auswählen

date +%V -d $mydat
40
So langsam wird's

Ich möchte die 8 emails pro Tag wöchentlich zusammenfassen und abspeichern.
Damit kann ich dann mit gnuplot eine Grafik erstellen und automatisiert versenden.

Antworten