ersetzen mit sed gelingt mir nicht

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
nephilim
Beiträge: 39
Registriert: 06.03.2017 18:11:50

ersetzen mit sed gelingt mir nicht

Beitrag von nephilim » 29.08.2017 19:03:12

Hallo zusammen,

ich komme mit sed nicht weiter. Ich versuche eine Konfiguration umzuschreiben und scheitere mit meinen Fertigkeiten und bitte daher um Hilfe dabei.

Code: Alles auswählen

#!/bin/sh

TEST=`cat /var/www/nextcloud/config/config.php | grep "    "`
TRI="    0 => 'localhost',\n    1 => 'andere.domain.com',\n    2 => 'weitere.domain.com',"

echo "$TEST"
echo "$TRI"
ergibt folgende Ausgabe, die auch gewünscht ist:

Code: Alles auswählen

pi@pcf-cloud:~ $ sudo ./test.sh 
    0 => 'localhost',
    1 => 'sub.domain.com',
    0 => 'localhost',
    1 => 'andere.domain.com',
    2 => 'weitere.domain.de',
pi@pcf-cloud:~ $ sudo nano 
Wenn ich jetzt aber versuche, $TEST durch $TRI zu ersetzen, scheitere ich. Ich habe das so versucht:

Code: Alles auswählen

sed "s/$TEST/$TRI/g" config.php > /home/pi/test.php
oder
sed `s/"$TEST"/"$TRI"/g` config.php > /home/pi/test.php
oder
sed `s/$TEST/$TRI/g` config.php > /home/pi/test.php
Ich habe ganz unterschiedliche Ergebnisse erzielt, nur nicht das gewünschte Ergebnis:

Code: Alles auswählen

./test.sh: 1: ./test.sh: s/: not found
oder
sed: -e expression #1, char 32: extra characters after command
oder 
sed: -e expression #1, char 23: unterminated `s' command
Kann mir bitte jemand einen Hinweis geben, wie ich das gelöst bekomme?

LG // neph

tobo
Beiträge: 2338
Registriert: 10.12.2008 10:51:41

Re: ersetzen mit sed gelingt mir nicht

Beitrag von tobo » 29.08.2017 20:32:46

Das wird wohl an den / im Ersetzungstext liegen. Probiere mal sowas:

Code: Alles auswählen

sed "s#$TEST#$TRI#g" config.php > /home/pi/test.php
EDIT:
Nein, sorry - das war in mehrfacher Weise Blödsinn! Das wird so wohl überhaupt nicht funktionieren, da sed erstmal zeilenweise arbeitet.

Antworten