Re: [vz-users] Probleme mit Zeilenumbruch in einem Import-Script
Hallo Lars, vielen Dank für deine Hilfe und Hinweise im Bezug auf das Script. Ich habe nun meine fehlenden Kanäle ergänzt und bin mit dem Ergebnis sehr zufrieden. Mit freundlichen Grüßen Dennis Greulich --- Am 30. Dezember 2016 um 11:01 schrieb Andreas Goetz : > Na wie derm auch sei- ich fand den Exkurs in die Shellprogrammierung sehr > hillfreich- bei mir ists leider meist trial and error- zumindest kenne ich > mittlerweile einige Stellen an denen ich rumprobieren kann :) > > Vielen Dank an Lars und Euch alles einen Guten Rusch und ein Gesundes und > Erfolgreiches 2017! > > Viele Grüße, > Andreas > > > 2016-12-30 10:31 GMT+01:00 Josef Moellers : > >> On 29.12.2016 23:15, Lars Täuber wrote: >> > Hallo Dennis, >> > >> > ich bin beim Formulieren von Antworten etwas ungeschickt. Bitte fasse >> die Mail nicht als Belehrung auf. >> > Ich schreibe mal, ein paar Grundbemerkungen auf und dann eine Lösung, >> wie ich es machen würde. >> > >> > * Konvention in Shellskripten: Endung auf .sh; lassen sich so besser >> von AWK-Skripten (*.awk) usw. unterscheiden >> So etwas hat neulich schon jemand anders behauptet (oder war's in einem >> Forum?) und hier möchte ich mich mal einmischen und ein "Veto!" >> aussprechen: >> >> Es ist egal, ob "import" ein übersetztes Hochsprachen-Programm, ein >> Skript in welcher Sprache auch immer (Shell, AWK, PERL, Python, >> younameitwegotit) oder gar nur eine Shell-Funktion ist: hauptsache es >> tut seine Pflicht. Es ist eine "Black Box". Klar, wenn ich das Programm >> modifizieren will und " import" aufrufe, könnte ich ein >> Problem bekommen, aber das Problem ist meist schnell lösbar. >> >> Umgekehrt wird aber ein Schuh' 'draus: Wenn ich "import" als "import.sh" >> (oder "import.awk" oder "import.pl") benenne und es an zahllosen Stellen >> aufrufe, was mache ich, wenn ich feststelle, daß es als Skript zu >> langsam ist und es in eine Compilersprache neu implementiere? Dann muß >> ich *alle* Stellen suchen, wo "import.sh" aufgerufen wird und es dort >> durch "import" ersetzen. Klar, ich kann an den Stellen, an denen es >> nicht weh tut, die alte Version benutzen, dann habe ich aber *zwei* >> Versionen des selben programms und muß *beide* pflegen! >> >> Die Urväter von Un*x haben sich etwas dabei gedacht, *nicht* auf >> Dateiendungen zu setzen sondern auf den Inhalt, und auf den kommt's >> bekanntlich an. Der Inhalt identifiziert sich selber durch die ersten >> paar Bytes: "\177ELF" oder "#!". Windows zieht sich da aus der Affäre, >> indem es automagisch Dateiendungen probiert, bis eine paßt, aber was, >> wenn sich irgendwie plötzlich ein BAT-File vor ein COM-File setzt (oder >> umgekehrt, ich nutze Windows nicht, kenne mich da in der Reihenfolge >> nicht aus)? >> >> Zu guter Letzt führt es zu Verwirrung, wenn es in einem Verzeichnis >> (z.B. den diversen "bin"-Verzeichnissen) sowohl ein "import.sh" als auch >> ein "import.awk" , ein "import.pl" und ein "import.bash" gibt. >> >> Guten Rutsch! >> >> Josef, 35 Jahre Informtiker-Erfahrung in die Waagschale werfend. >> > >
Re: [vz-users] Probleme mit Zeilenumbruch in einem Import-Script
Na wie derm auch sei- ich fand den Exkurs in die Shellprogrammierung sehr hillfreich- bei mir ists leider meist trial and error- zumindest kenne ich mittlerweile einige Stellen an denen ich rumprobieren kann :) Vielen Dank an Lars und Euch alles einen Guten Rusch und ein Gesundes und Erfolgreiches 2017! Viele Grüße, Andreas 2016-12-30 10:31 GMT+01:00 Josef Moellers : > On 29.12.2016 23:15, Lars Täuber wrote: > > Hallo Dennis, > > > > ich bin beim Formulieren von Antworten etwas ungeschickt. Bitte fasse > die Mail nicht als Belehrung auf. > > Ich schreibe mal, ein paar Grundbemerkungen auf und dann eine Lösung, > wie ich es machen würde. > > > > * Konvention in Shellskripten: Endung auf .sh; lassen sich so besser von > AWK-Skripten (*.awk) usw. unterscheiden > So etwas hat neulich schon jemand anders behauptet (oder war's in einem > Forum?) und hier möchte ich mich mal einmischen und ein "Veto!" > aussprechen: > > Es ist egal, ob "import" ein übersetztes Hochsprachen-Programm, ein > Skript in welcher Sprache auch immer (Shell, AWK, PERL, Python, > younameitwegotit) oder gar nur eine Shell-Funktion ist: hauptsache es > tut seine Pflicht. Es ist eine "Black Box". Klar, wenn ich das Programm > modifizieren will und " import" aufrufe, könnte ich ein > Problem bekommen, aber das Problem ist meist schnell lösbar. > > Umgekehrt wird aber ein Schuh' 'draus: Wenn ich "import" als "import.sh" > (oder "import.awk" oder "import.pl") benenne und es an zahllosen Stellen > aufrufe, was mache ich, wenn ich feststelle, daß es als Skript zu > langsam ist und es in eine Compilersprache neu implementiere? Dann muß > ich *alle* Stellen suchen, wo "import.sh" aufgerufen wird und es dort > durch "import" ersetzen. Klar, ich kann an den Stellen, an denen es > nicht weh tut, die alte Version benutzen, dann habe ich aber *zwei* > Versionen des selben programms und muß *beide* pflegen! > > Die Urväter von Un*x haben sich etwas dabei gedacht, *nicht* auf > Dateiendungen zu setzen sondern auf den Inhalt, und auf den kommt's > bekanntlich an. Der Inhalt identifiziert sich selber durch die ersten > paar Bytes: "\177ELF" oder "#!". Windows zieht sich da aus der Affäre, > indem es automagisch Dateiendungen probiert, bis eine paßt, aber was, > wenn sich irgendwie plötzlich ein BAT-File vor ein COM-File setzt (oder > umgekehrt, ich nutze Windows nicht, kenne mich da in der Reihenfolge > nicht aus)? > > Zu guter Letzt führt es zu Verwirrung, wenn es in einem Verzeichnis > (z.B. den diversen "bin"-Verzeichnissen) sowohl ein "import.sh" als auch > ein "import.awk" , ein "import.pl" und ein "import.bash" gibt. > > Guten Rutsch! > > Josef, 35 Jahre Informtiker-Erfahrung in die Waagschale werfend. >
Re: [vz-users] Probleme mit Zeilenumbruch in einem Import-Script
On 29.12.2016 23:15, Lars Täuber wrote: > Hallo Dennis, > > ich bin beim Formulieren von Antworten etwas ungeschickt. Bitte fasse die > Mail nicht als Belehrung auf. > Ich schreibe mal, ein paar Grundbemerkungen auf und dann eine Lösung, wie ich > es machen würde. > > * Konvention in Shellskripten: Endung auf .sh; lassen sich so besser von > AWK-Skripten (*.awk) usw. unterscheiden So etwas hat neulich schon jemand anders behauptet (oder war's in einem Forum?) und hier möchte ich mich mal einmischen und ein "Veto!" aussprechen: Es ist egal, ob "import" ein übersetztes Hochsprachen-Programm, ein Skript in welcher Sprache auch immer (Shell, AWK, PERL, Python, younameitwegotit) oder gar nur eine Shell-Funktion ist: hauptsache es tut seine Pflicht. Es ist eine "Black Box". Klar, wenn ich das Programm modifizieren will und " import" aufrufe, könnte ich ein Problem bekommen, aber das Problem ist meist schnell lösbar. Umgekehrt wird aber ein Schuh' 'draus: Wenn ich "import" als "import.sh" (oder "import.awk" oder "import.pl") benenne und es an zahllosen Stellen aufrufe, was mache ich, wenn ich feststelle, daß es als Skript zu langsam ist und es in eine Compilersprache neu implementiere? Dann muß ich *alle* Stellen suchen, wo "import.sh" aufgerufen wird und es dort durch "import" ersetzen. Klar, ich kann an den Stellen, an denen es nicht weh tut, die alte Version benutzen, dann habe ich aber *zwei* Versionen des selben programms und muß *beide* pflegen! Die Urväter von Un*x haben sich etwas dabei gedacht, *nicht* auf Dateiendungen zu setzen sondern auf den Inhalt, und auf den kommt's bekanntlich an. Der Inhalt identifiziert sich selber durch die ersten paar Bytes: "\177ELF" oder "#!". Windows zieht sich da aus der Affäre, indem es automagisch Dateiendungen probiert, bis eine paßt, aber was, wenn sich irgendwie plötzlich ein BAT-File vor ein COM-File setzt (oder umgekehrt, ich nutze Windows nicht, kenne mich da in der Reihenfolge nicht aus)? Zu guter Letzt führt es zu Verwirrung, wenn es in einem Verzeichnis (z.B. den diversen "bin"-Verzeichnissen) sowohl ein "import.sh" als auch ein "import.awk" , ein "import.pl" und ein "import.bash" gibt. Guten Rutsch! Josef, 35 Jahre Informtiker-Erfahrung in die Waagschale werfend.
Re: [vz-users] Probleme mit Zeilenumbruch in einem Import-Script
Nachtrag: https://github.com/gitaeuber/data_logger Gute Nacht Lars
Re: [vz-users] Probleme mit Zeilenumbruch in einem Import-Script
Hallo Dennis, ich bin beim Formulieren von Antworten etwas ungeschickt. Bitte fasse die Mail nicht als Belehrung auf. Ich schreibe mal, ein paar Grundbemerkungen auf und dann eine Lösung, wie ich es machen würde. * Konvention in Shellskripten: Endung auf .sh; lassen sich so besser von AWK-Skripten (*.awk) usw. unterscheiden * Konvention in Shellskripten: Variablennamen in Großbuchstaben: "${DATEIEN[$I]}" * Wenn man Dateien in Shellskripten als Option übergibt, sollte man darauf achten, dass evtl Sonderzeichen (z.B. Leerzeichen) im Dateinamen stecken können. Das kann im einfachsten Fall zu unerwünschten Ergebnissen erführen, im schlimmsten Fall aber auch zu gefährlichen Sicherheitslücken. Also Dateinamen _immer_ in Anführungszeichen: "${dateien[$i]}". Wenn man sich daran hält auch wenn es eigentlich nicht notwendig ist, da man die Dateinamen selbst wählt, vergisst man es aber auch in anderen Fällen nicht so einfach. * überflüssige Programmaufrufe möglichst vermeiden: *** cat "$DATEI" | sed -n ... besser: *** sed -n ... "$DATEI" * Die Ausgabe durch 'sed 's/.../.../p' bewirken, dass das Ergebnis an die Shell übergeben wird. Die Interpretiert das ";" nach dem "ts=" als Trenner zwischen Befehlen. Du willst aber folgendes der Shell übergeben: vzclient -u 5d485110-9908-11e6-8e35-ade5ad34c96a add data value=XX ts=$(date -d "2013-05-28 09:20:00" +" %s000") Das $(befehl) bedeutet, dass die Shell den Befehl ausführen soll und die Ausgabe als String einfügen soll. Daraus entsteht also: vzclient -u 5d485110-9908-11e6-8e35-ade5ad34c96a add data value=XX ts=136972560 Und das wird dann interpretiert. * die verschiedenen Ausdrücke "[0-9]*.[0-9]*;" beim sed sind etwas zu umständlich. Kürzer geht es so: alle Zeichen nur kein ";": [^;]*; * Die Klammern um den letzten Ausdruck "(.*)" sind nicht notwendig, weil Du den Inhalt nicht auswerten möchtest. * Der Umweg über das Shell-Array ist nicht notwendig, wenn die Dateien alle in einem Verzeichnis liegen. Auch möglich ist hier: for DATEI in * do sed -n ... "$DATEI" done Ich bin mir nicht ganz sicher, was Du als Ergebnis erwartest, aber ich vermute in der ersten sed-Zeile soll der vierte Wert nach einem ";" als "value" genommen werden. Man kann gut mit "cut" bestimmte Felder einer Datei extrahieren: cut -d';' -f 2,4 oder kürzer, wenn man das ";" escaped: cut -d\; -f 2,4 Das ";" wird sonst von der Shell interpretiert und nicht vom "cut" Dann möchtest Du aber nur die Zeilen auswerten, die mit "600;" beginnen. Das kann man mit "sed" oder mit "grep" machen: sed anweisen, dass es Zeilen, die mit "600;" anfangen nicht wegschmeißen soll: sed -e '/^600\;/!d' -e 's/' "$DATEI" oder: grep '^600;' | ... Oder man nimmt die Datumsangabe als Kriterium. Ein '\' am Ende einer Zeile zeigt der Shell, dass der Befehl auf der nächsten Zeile weiter geht. In der Shellvariable "IFS" steht, welche Zeichen als Trennzeichen interpretiert werden sollen. Normalerweise stehen das Leerzeichen, Tabulator und "Newline" drin. Aber man kann das auch selbst beeinflussen: IFS=';' trennt nun auch "2013-05-28 09:20:00;264802N203;1159" in 3 Teile: 2013-05-28 09:20:00 264802N203 1159 Also ich stell mir das so vor: #!/bin/bash # # importiere Werte aus Logdateien # IFS=';' for DATEI in id* do grep ';201.-..-.. ' $DATEI \ | cut -d\; -f2,4,8,9,10 \ | while read DATUM P_AC WERT5 WERT6 WERT7 do DATUM=$(date -d "$DATUM" +%s000) vzclient -u 5d485110-9908-11e6-8e35-ade5ad34c96a add data value=$P_AC ts=$DATUM vzclient -u 681155e0-9906-11e6-b5d9-51edf01eb751 add data value=$WERT5 ts=$DATUM vzclient -u 6fc360c0-9906-11e6-bc21-7becbbfe157b add data value=$WERT6 ts=$DATUM vzclient -u 7664b9b0-9906-11e6-a73b-09873e88f0c0 add data value=$WERT7 ts=$DATUM done done Den Rest der Stellen war ich zu faul auszuzählen. Jede Datei wird hier nur einmal mit grep, cut bearbeitet und jede Zeile nur einmal und dem read gelesen und auch nur ein "date" pro Zeile ausgeführt. In Deiner Version wurde jede Datei für jeden Wert mehrfach geöffnet, bearbeitet und jedes mal das Datum neu berechnet. Ich hoffe, das hilft Dir weiter. Berthold Bredenkamp hat im Herbst 2011 ein Skript gebastelt: http://volkszaehler.org/pipermail/volkszaehler-dev/attachments/2027/69cb6074/attachment.obj welches ich für meine Importe angepasst habe. Dort wird so eine Zeile wie die 6. Zeile in deiner Datei vom Skript auswertet. Ich gebe dann nur noch an, welche VZ-ID für welche Werte benutzt werden sollen, also P_AC für 5d485110-9908-11e6-8e35-ade5ad34c96a Diese Verknüpfung lege ich in Variablen ab: UUID["P_AC"]="5d485110-9908-11e6-8e35-ade5ad34c96a" und das Skript findet dann selbständig heraus, an welcher Stelle der entsprechende Wert zu suchen ist. Aber solange sich die Position der Werte in den Dateien nicht ändert, funktioniert das obere Skript natürlich schneller und ist auch viel besser lesbar. Viel Erfolg und guten Rutsch. Lars
Re: [vz-users] Probleme mit Zeilenumbruch in einem Import-Script
Hallo Lars, die Dateien liegen alle unter /home/vz-datenimport/ Eine Datei habe ich angehängt. Die Code-Zeile die erzeugt werden soll, sollte z.B. so aussehen: > vzclient -u 681155e0-9906-11e6-b5d9-51edf01eb751 add data value=375 > ts=136972020 Und so wird es derzeit erzeugt: > vzclient -u 681155e0-9906-11e6-b5d9-51edf01eb751 add data value=375 ts= > 136972020 Die 375 und 136972020 (Timestamp, mit den drei Nullen für Volkszähler) werden durch die RegEx richtig ausgelesen. Lediglich zwischen ts= und ;date -d "\1" +" %s000"/ep wird ein Zeilenumbruch erzeugt. Mit freundlichen Grüßen Dennis Greulich --- Am 28. Dezember 2016 um 11:52 schrieb Lars Täuber : > ... und schick doch bitte auch mal eine Ergebniszeile, wie sie entstehen > soll, mit. > > Grüße > Lars > > On Wed, 28 Dec 2016 11:47:54 +0100 Lars Täuber > wrote: > > Hallo Dennis, > > > > On Wed, 28 Dec 2016 11:06:00 +0100 "D. Greulich" > wrote: > > > Hallo, > > > > > > ich hoffe ihr hattet ein angenehmes Weihnachtsfest. > > > > > > Da ich auf meinen BananaPI meine PV-Anlage visualisieren möchte, und > dazu > > > die Daten von 4 Jahren nachtragen möchte, bastel ich gerade an einem > > > Import-Script (siehe Anhang Import.txt) > > > > > > Im großen und ganzen läuft es auch schon recht gut, aber leider noch > nicht > > > fehlerfrei. Wenn ich es starte, erhalte ich in der CLI folgende > Meldung: > > > > > > {"version":"0.3","exception":{"message":"Invalid time format: > > > > ''","type":"Exception","code":0}} > > > > > > > > > Die Ursache ist ein Zeilenumbruch, den mein Script beim Timestamp > erzeugt. > > > Im Code ist das diese Stelle: > > > > > > ...5ad34c96a add data value=\3 ts=;date -d "\1" +" %s000"/ep' > > > > > > > > > Wie kann ich den erzeugten Zeilenumbruch nach ts= verhindern? > > > Desweiteren beendet sich das Script leider nicht ordnungsgemäß. Ich > muss es > > > mit STRG+C beenden. Dazu würde ich auch etwas Hilfe benötigen. > > > > > > > ich bin zwar bald weg, aber schick doch bitte auch mal eine Zeile aus > den Dateien, die Du das verändern möchtest. > > Sind die Dateien in verschiedenen Unterverzeichnissen oder liegen alle > im gleichen Verzeichnis: /home/vz-datenimport/import/ ? > > > > vermutlich komme ich erst am Freitag dazu, mich noch mal damit zu > beschäftigen. > > > > Grüße > > Lars > > > -- > Schöne Grüße > Lars Täuber > id3203-130528092217 Description: Binary data
Re: [vz-users] Probleme mit Zeilenumbruch in einem Import-Script
... und schick doch bitte auch mal eine Ergebniszeile, wie sie entstehen soll, mit. Grüße Lars On Wed, 28 Dec 2016 11:47:54 +0100 Lars Täuber wrote: > Hallo Dennis, > > On Wed, 28 Dec 2016 11:06:00 +0100 "D. Greulich" > wrote: > > Hallo, > > > > ich hoffe ihr hattet ein angenehmes Weihnachtsfest. > > > > Da ich auf meinen BananaPI meine PV-Anlage visualisieren möchte, und dazu > > die Daten von 4 Jahren nachtragen möchte, bastel ich gerade an einem > > Import-Script (siehe Anhang Import.txt) > > > > Im großen und ganzen läuft es auch schon recht gut, aber leider noch nicht > > fehlerfrei. Wenn ich es starte, erhalte ich in der CLI folgende Meldung: > > > > {"version":"0.3","exception":{"message":"Invalid time format: > > > ''","type":"Exception","code":0}} > > > > > > Die Ursache ist ein Zeilenumbruch, den mein Script beim Timestamp erzeugt. > > Im Code ist das diese Stelle: > > > > ...5ad34c96a add data value=\3 ts=;date -d "\1" +" %s000"/ep' > > > > > > Wie kann ich den erzeugten Zeilenumbruch nach ts= verhindern? > > Desweiteren beendet sich das Script leider nicht ordnungsgemäß. Ich muss es > > mit STRG+C beenden. Dazu würde ich auch etwas Hilfe benötigen. > > > > ich bin zwar bald weg, aber schick doch bitte auch mal eine Zeile aus den > Dateien, die Du das verändern möchtest. > Sind die Dateien in verschiedenen Unterverzeichnissen oder liegen alle im > gleichen Verzeichnis: /home/vz-datenimport/import/ ? > > vermutlich komme ich erst am Freitag dazu, mich noch mal damit zu > beschäftigen. > > Grüße > Lars -- Schöne Grüße Lars Täuber
Re: [vz-users] Probleme mit Zeilenumbruch in einem Import-Script
Hallo Dennis, On Wed, 28 Dec 2016 11:06:00 +0100 "D. Greulich" wrote: > Hallo, > > ich hoffe ihr hattet ein angenehmes Weihnachtsfest. > > Da ich auf meinen BananaPI meine PV-Anlage visualisieren möchte, und dazu > die Daten von 4 Jahren nachtragen möchte, bastel ich gerade an einem > Import-Script (siehe Anhang Import.txt) > > Im großen und ganzen läuft es auch schon recht gut, aber leider noch nicht > fehlerfrei. Wenn ich es starte, erhalte ich in der CLI folgende Meldung: > > {"version":"0.3","exception":{"message":"Invalid time format: > > ''","type":"Exception","code":0}} > > > Die Ursache ist ein Zeilenumbruch, den mein Script beim Timestamp erzeugt. > Im Code ist das diese Stelle: > > ...5ad34c96a add data value=\3 ts=;date -d "\1" +" %s000"/ep' > > > Wie kann ich den erzeugten Zeilenumbruch nach ts= verhindern? > Desweiteren beendet sich das Script leider nicht ordnungsgemäß. Ich muss es > mit STRG+C beenden. Dazu würde ich auch etwas Hilfe benötigen. > ich bin zwar bald weg, aber schick doch bitte auch mal eine Zeile aus den Dateien, die Du das verändern möchtest. Sind die Dateien in verschiedenen Unterverzeichnissen oder liegen alle im gleichen Verzeichnis: /home/vz-datenimport/import/ ? vermutlich komme ich erst am Freitag dazu, mich noch mal damit zu beschäftigen. Grüße Lars
[vz-users] Probleme mit Zeilenumbruch in einem Import-Script
Hallo, ich hoffe ihr hattet ein angenehmes Weihnachtsfest. Da ich auf meinen BananaPI meine PV-Anlage visualisieren möchte, und dazu die Daten von 4 Jahren nachtragen möchte, bastel ich gerade an einem Import-Script (siehe Anhang Import.txt) Im großen und ganzen läuft es auch schon recht gut, aber leider noch nicht fehlerfrei. Wenn ich es starte, erhalte ich in der CLI folgende Meldung: {"version":"0.3","exception":{"message":"Invalid time format: > ''","type":"Exception","code":0}} Die Ursache ist ein Zeilenumbruch, den mein Script beim Timestamp erzeugt. Im Code ist das diese Stelle: ...5ad34c96a add data value=\3 ts=;date -d "\1" +" %s000"/ep' Wie kann ich den erzeugten Zeilenumbruch nach ts= verhindern? Desweiteren beendet sich das Script leider nicht ordnungsgemäß. Ich muss es mit STRG+C beenden. Dazu würde ich auch etwas Hilfe benötigen. Mit freundlichen Grüßen Dennis Greulich --- #!/bin/bash # Dateien ermitteln und Anzahl bestimmen dateien=($(find /home/vz-datenimport/import -type f)) count=${#dateien[@]} for((i=0; i<=$count; i++)) do cat ${dateien[$i]} | sed -n -r 's/600;([\0-9: -]*);([0-9a-zA-Z]*);([0-9]*);(.*)/vzclient -u 5d485110-9908-11e6-8e35-ade5ad34c96a add data value=\3 ts=;date -d "\1" +" %s000"/ep' cat ${dateien[$i]} | sed -n -r 's/600;([\0-9: -]*);([0-9a-zA-Z]*);[0-9]*;[0-9]*.[0-9]*;[0-9]*;[0-9]*;([0-9]*);(.*)/vzclient -u 681155e0-9906-11e6-b5d9-51edf01eb751 add data value=\3 ts=;date -d "\1" +" %s000"/ep' cat ${dateien[$i]} | sed -n -r 's/600;([\0-9: -]*);([0-9a-zA-Z]*);[0-9]*;[0-9]*.[0-9]*;[0-9]*;[0-9]*;[0-9]*;([0-9]*);(.*)/vzclient -u 6fc360c0-9906-11e6-bc21-7becbbfe157b add data value=\3 ts=;date -d "\1" +" %s000"/ep' cat ${dateien[$i]} | sed -n -r 's/600;([\0-9: -]*);([0-9a-zA-Z]*);[0-9]*;[0-9]*.[0-9]*;[0-9]*;[0-9]*;[0-9]*;[0-9]*;([0-9]*);(.*)/vzclient -u 7664b9b0-9906-11e6-a73b-09873e88f0c0 add data value=\3 ts=;date -d "\1" +" %s000"/ep' cat ${dateien[$i]} | sed -n -r 's/600;([\0-9: -]*);([0-9a-zA-Z]*);[0-9]*;[0-9]*.[0-9]*;[0-9]*;[0-9]*.[0-9]*;[0-9]*[0-9]*;[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*;[0-9]*;[0-9]*;([0-9]*.[0-9]*);(.*)/vzclient -u fe594060-9906-11e6-8434-4d1421bad08a add data value=\3 ts=;date -d "\1" +" %s000"/ep' cat ${dateien[$i]} | sed -n -r 's/600;([\0-9: -]*);([0-9a-zA-Z]*);[0-9]*;[0-9]*.[0-9]*;[0-9]*;[0-9]*.[0-9]*;[0-9]*[0-9]*;[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*;[0-9]*;[0-9]*;[0-9]*.[0-9]*;([0-9]*.[0-9]*);(.*)/vzclient -u 06002ec0-9907-11e6-a962-1bc198a7fed9 add data value=\3 ts=;date -d "\1" +" %s000"/ep' cat ${dateien[$i]} | sed -n -r 's/600;([\0-9: -]*);([0-9a-zA-Z]*);[0-9]*;[0-9]*.[0-9]*;[0-9]*;[0-9]*.[0-9]*;[0-9]*[0-9]*;[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*;[0-9]*;[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;([0-9]*.[0-9]*);(.*)/vzclient -u 0b822870-9907-11e6-94a8-69544d409152 add data value=\3 ts=;date -d "\1" +" %s000"/ep' cat ${dateien[$i]} | sed -n -r 's/600;([\0-9: -]*);([0-9a-zA-Z]*);[0-9]*;[0-9]*.[0-9]*;[0-9]*;[0-9]*.[0-9]*;[0-9]*[0-9]*;[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;([0-9]*.[0-9]*);(.*)/vzclient -u 7ff11c80-9906-11e6-8e6e-4dc31abbc3c7 add data value=\3 ts=;date -d "\1" +" %s000"/ep' cat ${dateien[$i]} | sed -n -r 's/600;([\0-9: -]*);([0-9a-zA-Z]*);[0-9]*;[0-9]*.[0-9]*;[0-9]*;[0-9]*.[0-9]*;[0-9]*[0-9]*;[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;([0-9]*.[0-9]*);(.*)/vzclient -u 879b4ae0-9906-11e6-b26a-cb9bd6fe2ffb add data value=\3 ts=;date -d "\1" +" %s000"/ep' cat ${dateien[$i]} | sed -n -r 's/600;([\0-9: -]*);([0-9a-zA-Z]*);[0-9]*;[0-9]*.[0-9]*;[0-9]*;[0-9]*.[0-9]*;[0-9]*[0-9]*;[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;([0-9]*.[0-9]*);(.*)/vzclient -u 12b706e0-9907-11e6-91dc-e50473598c7a add data value=\3 ts=;date -d "\1" +" %s000"/ep' cat ${dateien[$i]} | sed -n -r 's/600;([\0-9: -]*);([0-9a-zA-Z]*);[0-9]*;[0-9]*.[0-9]*;[0-9]*;[0-9]*.[0-9]*;[0-9]*[0-9]*;[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;[0-9]*.[0-9]*;([0-9]*.[0-9]*);(.*)/vzclient -u 31f2f9e0-9907-11e6-b7aa-99f11583bd4d add data value=\3 ts=;date -d "\1" +" %s000"/ep' done