Archiv verlassen und diese Seite im Standarddesign anzeigen : vi ersetzen von ganzen Pfaden
zwerg2003
04-08-2010, 08:40
Hallo,
suchen und globales ersetzten funktioniert mit vi mit
:s/sting1/string2/g
nur wie kann ich in einer Datei komplette Pfadangaben ersetzen?
das maskieren der / im Pfad mit \ funktioniert nicht. Die Pfade in '' zu setzten auch nicht.
Danke im voraus
:s ersetzt nur in der aktuellen Zeile, um in der ganzen Datei zu ersetzen, nutzt man :%s.
Slashes müssen escaped werden. Bei mir funzt z.B. folgendes wunderbar:
:%s/\/home\/john\//\/root\//g
Ich nutz übrigens vim; wenn du vi aufrufst, startest du vim im Kompatibilitätsmodus - meiner Meinung nach Blödsinn, vi ist deshalb bei mir ein Alias auf "vim -p" (ViM mit Tabs für Dateien), die Ersetzung klappt jedoch auch, wenn ich vim als vi aufrufe.
zwerg2003
04-08-2010, 16:37
ok mit dem Aufruf geht es mit nun, was ist der Unterschied zwischen %s und nur s? Ist es wirklich nur die Zeilenabarbeitung?
Ich habe mir erstmal mit einem kleinen Skript geholfen.
#!/bin/bash
oldpath=/test/lib
newpath=/test/local
cat $1 | sed "s;${oldpath};${newpath};" >$1
das funktioniert ganz gut.
Danke für die Hilfe
% ist ein Bereichsoperator, der die ganze Datei als Bereich angibt.
Ohne Bereichsangabe wird die aktuelle Zeile benutzt.
:help command-range hilft dir weiter.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.