Ersetzen Sie in VIM den Pfad durch Schrägstriche, ohne Escape-Schrägstriche zu verwenden

10

In vim möchte ich einen langen Pfad /a/b/f/g/d/gdurch einen anderen /s/g/w/d/g/rin einer Textdatei ersetzen . Normalerweise benutze ich, \/aber hier gibt es zu viele Schrägstriche. Gibt es einen einfacheren Weg?

user13107
quelle

Antworten:

29

Sie können ein anderes Zeichen anstelle eines Schrägstrichs /als Begrenzer für den Ersetzungsbefehl verwenden.

Beispiel mit #:

:%s#/a/b/f/g/d/g#/s/g/w/d/g/r#
cuonglm
quelle
1
Sehr schön, das ist die bisher beste Lösung.
Seth
1
Dies funktioniert auch in ed, sed, perl usw.
Deltab
2

Vielleicht können Sie sed verwenden

Beispiel 1 - sed @Trennzeichen: Ersatz /opt/omni/lbinfür/opt/tools/bin

Wenn Sie einen Pfadnamen ersetzen, der hat /, können Sie @stattdessen als Trennzeichen verwenden /. Im folgenden sed-Beispiel wurde in der letzten Zeile der Eingabedatei /opt/omni/lbinin geändert /opt/tools/bin.

$ sed 's@/opt/omni/lbin@/opt/tools/bin@g' path.txt /usr/kbos/bin:/usr/local/bin:/usr/jbin/:/usr/bin:/usr/sas/bin /usr/local/sbin:/sbin:/bin/:/usr/sbin:/usr/bin:/opt/omni/bin: /opt/tools/bin:/opt/omni/sbin:/root/bin

Von: http://www.thegeekstuff.com/2009/10/unix-sed-tutorial-advanced-sed-substitution-examples/

vfbsilva
quelle