Linux => Konsole => sed

Hallo Community, die Fehler der letzten Tage wurden hoffentlich behoben. Entschuldigt den Umstand! Viel Spaß weiterhin. Lg
  • Hallo,

    in einem meiner Scripte rechne ich mit "bc". Der hat den Nachteil, dass er bei Werten zwischen 0 und 1 die führende 0 nicht übergibt (.555 statt 0.555).

    Über Pipe ( | ) schicke ich den Wert an sed:

    Code
    sed 's/^\./0./'

    Und schon wird aus ".555" eine "0.555". Soweit so gut.

    Aber das klappt nicht mit Minuswerten, wie z.B. "-.555"

    Das klappt nur, wenn ich es so mache:

    Code
    sed 's/^\-./-0./'

    Nur wie kann ich beides erzwingen?

    Kleiner Nachtrag:

    Wenn ich es so mache:

    Code
    echo "-.555" | sed 's/^\./0./' | sed 's/^\-./-0./'

    klappt es. Aber zweimal sed hintereinander ist wohl ein Frevel, oder?

    Eine Idee wie ich das zusammenlege?

    Meine Hardware@home: Fritzbox 7590AX, 15xTasmota-Geräte, Syno NAS, Raspberry Pi 4 f. PiHole, ioBroker, Docker, TasmoAdmin, Portainer

    2 Mal editiert, zuletzt von Marc (17. Juni 2019 um 17:13)

  • Aber zweimal sed hintereinander ist wohl ein Frevel, oder?

    Kommt drauf an wie man's macht ;)

    Du kannst mehrere sed commands mit ";" verketten.

    echo "-.555" | sed 's/^\./0./; s/^\-./-0./'

    "FREVEL" ist es mit der Pipe auch nicht ... lediglich nicht so elegant. Zählen tut eh nur was hinten heraus kommt :)

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070