So fügen Sie Schrägstriche in vi Search & Replace ein

74

Ich habe eine Datei, die die Zeichenfolge enthält usrbin. Ich möchte danach suchen usrbinund es durch ersetzen /usr/bin/.

Ich habe es versucht :%s/usrbin/usr/bin/g, aber es zeigt Fehler E488: Trailing characters.

Wie füge ich einen Schrägstrich in eine Suche ein und ersetze ihn?

user1578447
quelle
mögliches Duplikat von / in vi Suchen und ersetzen?
Musa Haidari

Antworten:

113

Hier sind zwei Möglichkeiten:

  • Escape das, /was das Standard-Ersatztrennzeichen ist::s/usrbin/\/usr\/bin
  • Verwenden Sie ein anderes Ersatztrennzeichen, z. B. das Hash- #Zeichen : :s#usrbin#/usr/bin. Beachten Sie, dass es gibt Zeichen , dass Sie nicht als Trennzeichen verwenden können: ", \,|
pb2q
quelle
1
danke @CiroSantilli 包子 露 宪 六四 事件 法轮功! Ich habe Änderungen hinzugefügt. Kommentar, wenn Sie an andere Zeichen denken können, die nicht als alternative Trennzeichen verwendet werden können
pb2q
Gute Antwort, dies ist ideal, wenn Sie einen langen URL-Wert ersetzen möchten, da es überhaupt keinen Spaß macht, all diesen Schrägstrichen zu entkommen
jurgenb
Es gibt Probleme mit | (Pipe) als Trennzeichen beim Ersetzen von Backslashes wie "PATH = C: \ Windows \ System32; C: \ Temp; C: \ Users" über: s | \\ | / | g, aber ich habe nie herausgefunden, warum ich es gerade getan habe Verwenden Sie stattdessen # als Trennzeichen
Kajukenbo