CSV Format

  • Hallo,


    ich will mehere Temperaturen in eine CSV-Datei Schreiben und das Zeile für Zeile. Das Format der erstellten csv passt nicht. Wie kann man alles in eine Zeile bekommen? Die csv sieht so aus:


    12.10.2021

    ;10:22;19,1

    ;50,0


    ;19,2

    ;48,3


    ;15,6

    ;63,5


    ;12,2

    ;80,1


    Mein Skript ist:

    #!/bin/bash

    #Aktuelles Datum mit Uhrzeit einer Variablen zuweisen


    datum=$(date +%d.%m.%Y)

    zeit=$(date +%H:%M)


    # Im Skript den Ordner wechseln und die Temperaturdaten auslesen

    #cd /home/pi/Adafruit_Python_DHT/examples


    WERTE1=$(sudo ./AdafruitDHT.py 22 20)

    set −− $WERTE1

    ogtemp=$2

    ogluft=$3


    WERTE2=$(sudo ./AdafruitDHT.py 22 26)

    set −− $WERTE2

    egtemp=$2

    egluft=$3


    WERTE3=$(sudo ./AdafruitDHT.py 22 21)

    set −− $WERTE3

    kgtemp=$2

    kgluft=$3


    WERTE4=$(sudo ./AdafruitDHT.py 22 16)

    set −− $WERTE4

    autemp=$2

    auluft=$3


    # Ausgabe semikolonsepariert in Datei

    echo "$datum;$zeit;$ogtemp;$ogluft;$egtemp;$egluft;$kgtemp;$kgluft;$autemp;$auluft" >> log.csv

  • Auf einem PC-Debian ist es nicht so:


    Script verkürzt weil keine DHTs da sind:


    log.csv fuer diesen Fall:


    Code
    12.10.2021;12:34;;;;;;;;
    12.10.2021;12:34;;;;;;;;
    12.10.2021;12:34;;;;;;;;

    Hast du irgenwelche Optionen der bash gesetzt?

  • Es ist auf meinen Pi und nicht auf einem PC. Mit der verkürzten Version erhalte ich immer noch eine zweite Zeile.


    12.10.2021

    ;13:07;;;;;;;;


    Optionen der bash, das kenne ich leider nicht und mir ist nicht bewusst da irgendetwas verändert zu haben.

  • Post by llutz ().

    This post was deleted by the author themselves ().
  • Die kurze Version laeuft auch auf einem Raspberry:

  • wenn ich das so ausführe wird zwar eine csv erstellt diese hat aber wieder die falsche Anordnung und es kommen ein paar Fehlermeldungnen


    ./aus2.sh: Zeile 1: pi@raspberrypi:~: Kommando nicht gefunden.

    ./aus2.sh: Zeile 3: $'\r': Kommando nicht gefunden.

    ./aus2.sh: Zeile 5: $'\r': Kommando nicht gefunden.

    ./aus2.sh: Zeile 6: $'\r': Kommando nicht gefunden.

    ./aus2.sh: Zeile 7: $'\r': Kommando nicht gefunden.

    ./aus2.sh: Zeile 9: $'\r': Kommando nicht gefunden.

    ./aus2.sh: Zeile 11: $'\r': Kommando nicht gefunden.

    ./aus2.sh: Zeile 13: $'\r': Kommando nicht gefunden.

    ./aus2.sh: Zeile 15: $'\r': Kommando nicht gefunden.

    ./aus2.sh: Zeile 16: $'\r': Kommando nicht gefunden.

    ./aus2.sh: Zeile 17: pi@raspberrypi:~: Kommando nicht gefunden.

    ./aus2.sh: Zeile 18: pi@raspberrypi:~: Kommando nicht gefunden.

    ./aus2.sh: Zeile 19: pi@raspberrypi:~: Kommando nicht gefunden.

    ./aus2.sh: Zeile 20: pi@raspberrypi:~: Kommando nicht gefunden.

    ./aus2.sh: Zeile 21: Syntaxfehler beim unerwarteten Wort `;;'

    '/aus2.sh: Zeile 21: `12.10.2021;15:23;;;;;;;

  • ./aus2.sh: Zeile 15: $'\r': Kommando nicht gefunden.

    Linux mag keine Windowszeilensteuerzeichen. Die musst Du entfernen oder einen linuxfaehigen Editor benutzen.

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."

    Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert =O Bei mir tut das raspiBackup automatisch ;)

  • Davon abgesehen gehören nicht alle Zeilen in dem Codeblock zum Skript.


    Btw. bei mir funktioniert mein Testskript auch.



    Code: log.csv
    12.10.2021;20:16;1;2;3;4.5;5.5;6;7;8
    12.10.2021;20:18;1;2;3;4.5;5.5;6;7;8
    12.10.2021;20:18;1;2;3;4.5;5.5;6;7;8
    12.10.2021;20:27;1;2;3;4.5;5.5;6;7;8