Verarbeitung von einem Haufen .csv Dateien automatisieren

Registriert
2. September 2007
Reaktionspunkte
3
Hallo,
seit geraumer Zeit lass ich unterschiedliche Temperaturen von unserem "Heizkraftwerk" im Keller, auf einer SD-Karte, aufzeichnen. Der "Mini-Computer" schreibt alle 5 Minuten die Temperatur in eine, für jeden Tag angelegte, csv Datei. Nun habe ich 31 csv Dateien von Dezember, allerdings würde ich diese nun gerne in einer Tabelle zusammenfassen. In dieser Tabelle sollen oben die Daten vom 1. Dezember stehen, darunter die vom 2. und so weiter...

Beispiel:
Auch wenn das Datum nicht der 01.12.2009 ist, soll als Beispiel angenommen werden, dass hier die Tabelle beginnt.
Code:
Datum & Uhrzeit	T. Sensor 1 [ °C]	T. Sensor 2 [ °C]	T. Sensor 4 [ °C]	T. Sensor 5 [ °C]	T. Sensor 6 [ °C]
28.12.2009 00:00	2,8	43	16	20	36,6
28.12.2009 00:05	2,8	42,9	16	20	36,9
28.12.2009 00:10	2,8	42,8	16	20	38,7
28.12.2009 00:15	2,8	42,6	15,9	20	38,8
28.12.2009 00:20	2,8	42,5	15,9	20	38,5

Die Datei vom 29.12.2009:
Code:
Datum & Uhrzeit	T. Sensor 1 [ °C]	T. Sensor 2 [ °C]	T. Sensor 4 [ °C]	T. Sensor 5 [ °C]	T. Sensor 6 [ °C]
29.12.2009 00:00	-1	42,1	15,6	19,9	40
29.12.2009 00:05	-1	42	15,6	19,9	40,8
29.12.2009 00:10	-1,1	41,8	15,6	19,9	39,6
29.12.2009 00:15	-1,1	41,7	15,6	19,9	36,8
29.12.2009 00:20	-1,1	41,5	15,6	19,9	38,9

Es würden eigtl. noch Einige andere Dateien folgen...


Mein Ziel ist es, die Daten nachher in folgender Form, in einer Tabelle, aufzulisten:
Code:
Datum & Uhrzeit	T. Sensor 1 [ °C]	T. Sensor 2 [ °C]	T. Sensor 4 [ °C]	T. Sensor 5 [ °C]	T. Sensor 6 [ °C]
28.12.2009 00:00	2,8	43	16	20	36,6
28.12.2009 00:05	2,8	42,9	16	20	36,9
28.12.2009 00:10	2,8	42,8	16	20	38,7
28.12.2009 00:15	2,8	42,6	15,9	20	38,8
28.12.2009 00:20	2,8	42,5	15,9	20	38,5
29.12.2009 00:00	-1	42,1	15,6	19,9	40
29.12.2009 00:05	-1	42	15,6	19,9	40,8
29.12.2009 00:10	-1,1	41,8	15,6	19,9	39,6
29.12.2009 00:15	-1,1	41,7	15,6	19,9	36,8
29.12.2009 00:20	-1,1	41,5	15,6	19,9	38,9


Ist es möglich diesen Vorgang, mit wenig Excel-Kenntnissen, zu automatisieren? Ich benutze Office 2007 (die alte Oberfläche, die wir damals in der Schule hatten, gefiel mir wesentlich besser...)


Ich habe bereits verschiedene Foren durchstöbert, allerdings ohne Erfolg.

Auch wenn ihr keinen kompletten Lösungsweg wisst, für jeden Tipp bin ich trotzdem sehr dankbar, weil ich nicht weiß wo ich beginnen soll.


Gruß Max
 
Gesetzt den Fall, du hast eine anstaendige Shell zur Verfuegung (Linux und Mac OS X bieten sowas zum Beispiel von Haus aus, unter Windows gibt es z. B. cygwin), waere das die Quick'n'Dirty-Variante. Voraussetzung: die Dateinamen sind aufsteigend sortiert. Ansonsten muss die Liste nachträglich noch sortiert werden, was aber mit dem Tool sort ziemlich einfach ist.

Code:
for FILE in *.csv; do
  grep -v "Datum" $FILE >> 2009-complete.csv
done

Nachtraegliches Sortieren:

Code:
sort -k 11,14 2009-complete.csv > 2009-complete-sorted.csv
 
Zuletzt bearbeitet:
Wenn es bei den 31 Dateien bleiben soll, würd ich alle Dateien in EXCEL aufmachen, über > Fenster > Nebeneinander vergleichen > alle Fenster auswählen > über strg+c & strg+v alle untereinander in die Erste Datei einfügen

wenn es mehr Dateien werden sollen, würd ich ein kleines Makro stricken, dass das für mich übernimmt
Grüße
Sören
 
@ rikman: danke, das werde ich mal probieren. Blöde Frage: Absteigend/ Aufsteigend sortiert, ist das relevant?!

@ sören: Genau, das wollte ich ja nicht. Der Vorgang soll sich auf alle 12 Monate anwenden lassen und das wäre mir echt zu viel Arbeit das immer zu machen... ;)
 
Wenn ich die Cygwin.exe starte, dann öffnet sich soetwas wie die cmd unter windows. Danach gebe ich den Quellcode ein, aber was nun?
 
Also, die genaue Vorgehensweise sollte in etwa so sein:

1) Cygwin starten
2) du musst jetzt in das Verzeichnis mit den CSV-Dateien wechseln. Wenn die Dateien zum Beispiel C:\DATA liegen, geht das mit cd /cygdrive/c/DATA
3) nun kannst du alle *.csv Dateien in diesem Directory zu einer CSV-Datei zusammenfuehren mit

Code:
for FILE in *.csv; do grep -v "Datum" $FILE >> 2009-complete.csv; done

(das ist das gleiche wie oben, nur in einer Zeile geschrieben)

4) jetzt hast du im aktuellen Directory eine Datei 2009-complete.csv - dort sind alle vorher existierenden *.csv-Dateien zusammengefuehrt.
 
Zurück