2016-07-12 7 views
1

Ich brauche einen sed Befehl, um eine Zeile in der Konfigurationsdatei zu ersetzen, die / enthält.sed Befehl zum Ersetzen der Zeichenfolge durch Schrägstriche

Ich möchte /var/log/haproxy zu /root/myDir/haproxy in der Datei ändern.

Können Sie bitte helfen? Danke im Voraus.

+0

Bitte werfen Sie einen Blick auf [editing-help] (http://stackoverflow.com/editing-help). – Cyrus

+0

Entschuldigung ich habe nicht verstanden was du meintest. – DevOpsNewB

+0

Wenn Sie "/ var/log/haproxy" durch "/ root/myDir/haproxy" ersetzen möchten, tun Sie dies: 'sed 's @/var/log/haproxy @/root/myDir/haproxy @ g'' – Will

Antwort

0

Wenn Sie einen String mit Schrägstriche ersetzen möchten, verwenden Sie einfach ein anderes Trennzeichen für die sed Ausdruck:

sed '[email protected]/var/log/[email protected]/root/myDir/[email protected]' <file> 

Hier ist ein Beispiel:

$ echo /var/log/haproxy | sed '[email protected]/var/log/[email protected]/root/myDir/[email protected]' 
/root/myDir/haproxy 

sed automatisch unabhängig von Zeichen verwenden folgt die s als Trennzeichen. Diese werden auch arbeiten:

$ echo /var/log/haproxy | sed 's#/var/log/haproxy#/root/myDir/haproxy#g' 
/root/myDir/haproxy 
$ echo /var/log/haproxy | sed 's^/var/log/haproxy^/root/myDir/haproxy^g' 
/root/myDir/haproxy 
$ echo /var/log/haproxy | sed 's%/var/log/haproxy%/root/myDir/haproxy%g' 
/root/myDir/haproxy 

Sie können auch nur die Flucht der / ist auf dem Weg und halten / verwenden, aber das ist schwieriger zu lesen, so dass ich es nicht empfehlen:

$ echo /var/log/haproxy | sed 's/\/var\/log\/haproxy/\/root\/myDir\/haproxy/g' 
/root/myDir/haproxy 
+0

Vielen Dank es funktioniert – DevOpsNewB

+0

Kein Problem, froh, zu helfen! :) – Will

Verwandte Themen