So ändern Sie eine Variable in einer Datei

So ändern Sie eine Variable in einer Datei

Ich habe eine Konfigurationsdatei wie diese:

# Default LIST="nil"
LIST="element1 element2 element3"

Was wäre die einfachste Möglichkeit, LIST über ein Shell-Skript zu ändern?

Antwort1

Verwenden sed:

sed -i 's/LIST\=.*/LIST="element4 element5"/' config_file

Wenn Sie möchten, dass LIST nur aktualisiert wird, wenn es nicht kommentiert ist, fügen Sie ^(Zeilenanfang) hinzu:

sed -i 's/^LIST\=.*/LIST="element4 element5"/' config_file

Antwort2

Dieselbe Antwort wie die akzeptierte, aber bereit zur Verwendung in einemSkript. Falls es jemand nützlich findet:

#! /bin/bash
#  (GPL3+) Alberto Salvia Novella (es20490446e)


modifyVariableInFile () {
    variable="${1}"
    content="${2}"
    file="${3}"

    if [ ! -f "${file}" ]; then
        echo "modifyVariableInFile: file doesn't exist: ${file}"
        exit 1
    fi

    sed -i "s/^${variable}\=.*/${variable}=\"${content}\"/" "${file}"
}


modifyVariableInFile ${@}

verwandte Informationen