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?



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: ", \,|

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
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.