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
Bitte werfen Sie einen Blick auf [editing-help] (http://stackoverflow.com/editing-help). – Cyrus
Entschuldigung ich habe nicht verstanden was du meintest. – DevOpsNewB
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