Verwenden Sie sed, um Daten VOR einem schließenden Anführungszeichen anzuhängen, das einen Pfad umschließt

Verwenden Sie sed, um Daten VOR einem schließenden Anführungszeichen anzuhängen, das einen Pfad umschließt

Ich muss den Pfad /opt/dell/dcceiner Anwendung außerhalb der Standardpfadangabe anhängen in/etc/Umgebung

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/dell/dcc"

Das Problem besteht darin, dass das Anhängen innerhalb des schließendendoppelte Anführungszeichendes Paares, das den Pfad umschließt.

Antwort1

Obwohl dieses Beispiel für das Bearbeiten eines Pfads in einer bestimmten Datei gilt, können viele Direktivenwerte in Konfigurationsdateien, die mit sed geändert werden müssen, in Anführungszeichen gesetzt werden. Da ich der Meinung bin, dass die Lösung von allgemeinem Interesse sein könnte, habe ich sie unten geteilt:

sed 's#"$#:/opt/dell/dcc"#' /etc/environment

Screenshot der Beweislösung funktioniert wie beschrieben

Der Vorteil des Abgleichs mit dem abschließenden Anführungszeichen besteht darin, dass dadurch sichergestellt wird, dass dieser Sed-Ausdruck auch dann noch korrekt funktioniert, wenn sich der Pfad in Zukunft ändert, indem der benutzerdefinierte Pfad vor dem schließenden Anführungszeichen an das Ende angehängt wird.

Der obige Sed-Ausdruck wurde getestet und funktioniert nachweislich einwandfrei. Andere kennen jedoch möglicherweise eine elegantere Möglichkeit, um dasselbe Ergebnis zu erzielen. Teilen Sie diese gerne hier mit.

Vergessen Sie nicht, einen Schalter hinzuzufügen -i, damit die Änderungen nach dem Test dauerhaft bleiben.

verwandte Informationen