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?

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#

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/

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.