Wer über die CLI in einer Textdatei etwas editieren möchte greift für gewöhnlich zu nano, vim etc. Aber es gibt auch eine andere Möglichkeit in einer Textdatei etwas zu ändern. Über eine Stream (Stream Edit). Das kann zum Beispiel bei einem Deploymentscript sinnvoll sein. Wenn man zum Beispiel ein Deploymentscript hat und mit Release Ordner arbeitet. In diesem speziellem Fall muss dann der Apache DocumentRoot angepasst werden. Standardmäßig ist dieser “/var/www/html”. Nach dem wir unseren neuen Code auf den r1 (realeas1) Ordner geladen haben, möchten wir dass die der neue Code in Produktion geht. Also passen wir unsere Apache apache2.conf Datei an. Und zwar mit folgender CLI Zeile:
sed -i 's/\/www\/html\//\www\/html\/r1\//g' apache2.conf
.
Und den apache noch mal neu starten:
# systemctl restart apache
# service httpd restart
sed -i ‘s/original/neu/g’ datei.txt
Erläuterung:
sed = Stream Editor
-i = in-place (d.h. zurück in die Originaldatei speichern)
Die Befehlszeichenfolge:
s = der Ersetzungsbefehl
original = ein regulärer Ausdruck, der das zu ersetzende Wort beschreibt (oder nur das Wort selbst)
new = der Text, durch den er ersetzt werden soll
g = global (d.h. alles ersetzen und nicht nur das erste Vorkommen)
file.txt = der Dateiname