• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

sed - Zeilen erweitern

Kann man mit sed Zeilen verändern? Append hängt nur am Dateiende oder nach einer bestimmten Zeile etwas an.

Beispiel: Ich möchte in einer Datei nach der Zeile suchen die den String "PATH=" enthält und diese jetzt um eine Pfadangabe ergänzen.
 
das kann man mit sed sicher machen, aber wie genau, das hängt davon ab wie deine datei ausschaut. steht das PATH=... allein in der Zeile? kann sich der path über mehrere zeilen erstrecken etc.
 
Die $PATH-Variable steht eventuell nicht allein da, auch kann sich $PATH über mehrere Zeilen erstrecken. Das ist ein Problem an daß ich bisher gar nicht gedacht habe. SED arbeitet ja Zeilenorientiert. Vielleicht ist SED doch nicht das richtige Werkzeug. Wahrscheinlich ist es einfacher ein Mini C-Programm zu schreiben daß Zeichnweise in ein Array liest.

Ich habe gerade eben folgende Lösung angewendet: (Nicht $PATH sondern "Applets2")
_dbrep=$(egrep Applets2= /home/$USER/.kde/share/config/kickerrc)
sed -e 's\'$_dbrep'\'$_dbrep',ServiceButton_10\' /home/$USER/.kde/share/config/kickerrc > /home/$USER/.kde/share/config/kickerrc$$
cat /opt/dalibox/share/kde/kickerrc >> /home/$USER/.kde/share/config/kickerrc$$
mv /home/$USER/.kde/share/config/kickerrc$$ /home/$USER/.kde/share/config/kickerrc
 
Oben