Linux-Shell-Skript: Config-Datei einlesen und verarbeiten

  • Hallo Forum,


    ich habe noch eine Frage zur Shell-Skript-Programmierung:


    Es gibt eine Konfigurationsdatei mit Key/Value Paaren, wobei die Values Leerzeichen enthalten dürfen:


    Code
    param1=value1
    para=value
    myparatext=Das ist ein Text.
    myparatext2=Ein Text mit Ümläüten.
    htmltext=Dieser Text ist mit HTML formatiert: ä ö ü
    equals=Dieser Text enthält ein Gleichheitszeichen 2+3=5
    #Eine Kommentarzeile = mit Gleichheitszeichen
    #Eine Kommentarzeile ohne Gleichheitszeichen!


    Jetzt möchte ich diese Datei innerhalb eines Shell-Skripts einlesen. Das mache ich wie folgt:

    Code
    configfile=test.conf
    while read line
    do
    echo line: $line
    # Verarbeitung der Konfigzeile
    done < $configfile


    Die Verarbeitung soll dann wie folgt sein: Der erste Teil (vor dem Gleichheitszeichen) soll in einer weiteren Textdatei durch den zweiten Teil ersetzt werden. Dieses wollte ich dann mit sed machen (aber soweit bin ich noch nicht ;))


    Ich habe schon mehrere Möglichkeiten zum Trennen von $line ausprobiert. Sei es mit cut oder awk. Aber ich bin bisher nicht zum Ziel gekommen.


    Falls jemand schon ein solches Skript in seiner Sammlung hat und mir zur Verfügung stellen kann, wäre ich sehr dankbar.


    PS: Das herausfiltern von Kommentaren im Configfile (Die Zeilen die mit # beginnen) wäre ein Goodie, muss aber für den ersten Wurf nicht sein.

    _T_
    HO2
    IW0
    GE0

    HR4 (konvertierte 2019 nach 8 1/2 Jahren von Android zu iOS)  iPhone 12 Pro  Apple Watch Series 8 45mm GPS + LTE  MacBook Air M2 

  • sed ist eine Variante, cut eine andere. "cut -d= -f1" gibt dir den Wert links vom Gleichheitszeichen zurueck, "cut -d= -f2-" alles was danach kommt bis zum Ende der Zeile. "cut -b1" gibt dir das erste Zeichen einer Zeile zurueck, damit kannst du dann die Kommentare ignorieren.


    Mit perl waere das alles uebrigends viel einfacher... ;)

  • :top: Vielen Dank! Das hört sich vielversprechend an. Ich probiere es gleich nach dem Abendessen. :)

    _T_
    HO2
    IW0
    GE0

    HR4 (konvertierte 2019 nach 8 1/2 Jahren von Android zu iOS)  iPhone 12 Pro  Apple Watch Series 8 45mm GPS + LTE  MacBook Air M2 

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!