Hallo Liste, bastel gerade an einem Skript (#!/bin/bash), das in mehreren Dateien folgendes ändern soll: .htm' nach .php' (Hochkomma über #). Es funktioniert insoweit, das ich alle Möglichen Zeichen tauschen kann, aber eben nicht besagtes Hochkomma. Versuche mit sed 's|.htm'|.php'|g', 's|.htm\x27|.php\x27|g' blieben Erfolglos auch /' , /'/ , \'\ , \d#039 ..... WO liegt der Fehler, wie kann ich das tauschen? Dankbar für Anregungen, Uli -- Machen Sie Ihr Hobby zu Geld bei unserem Partner 1&1! http://profiseller.de/info/index.php3?ac=OM.PS.PS003K00596T0409a -- GMX - Die Kommunikationsplattform im Internet. http://www.gmx.net
* Ulrich Klenk schrieb am 29.Mai.2001:
bastel gerade an einem Skript (#!/bin/bash), das in mehreren Dateien folgendes ändern soll: .htm' nach .php' (Hochkomma über #). Es funktioniert insoweit, das ich alle Möglichen Zeichen tauschen kann, aber eben nicht besagtes Hochkomma. Versuche mit sed 's|.htm'|.php'|g', 's|.htm\x27|.php\x27|g' blieben Erfolglos auch /' , /'/ , \'\ , \d#039 .....
s/.htm\'/.php\'/g oder auch s|.htm\'|.php\'|g
WO liegt der Fehler, wie kann ich das tauschen?
Der Trenner nach dem s ist egal, das kann ein / oder auch ein | sein, aber auch ein a, b, c oder ein anderer Buchstabe, Zahl oder was weiß ich. Das Fluchtsymbol, daß ' maskiert ist aber immer der Backslash \. Wenn allerdings der Backslash als Trenner benutzt wird, dann muß er sich selbst maskieren, also immer doppelt sein. Das sähe dann so aus: s\\.htm\'\\.php\'\\g nicht zu empfehlen. Alles was eine Sonderbedeutung hat, wie ', ", *, +, ... kann mit \ maskiert werden. Bernd -- Alle meine Signaturen sind rein zufällig und haben nichts mit dem Text oder dem Schreiber zu tun, dem ich antworte. Falls irgendwelche Unrichtigkeiten dabei sein sollten, so bedauere ich das. Es wäre nett, wenn Du mich benachrichtigen würdest. |Zufallssignatur 0
On 29 May 2001, at 7:31, Ulrich Klenk wrote:
Hallo Liste,
bastel gerade an einem Skript (#!/bin/bash), das in mehreren Dateien folgendes ändern soll: .htm' nach .php' (Hochkomma über #). Es funktioniert insoweit, das ich alle Möglichen Zeichen tauschen kann, aber eben nicht besagtes Hochkomma. Versuche mit sed 's|.htm'|.php'|g', 's|.htm\x27|.php\x27|g' blieben Erfolglos auch /' , /'/ , \'\ , \d#039 .....
WO liegt der Fehler, wie kann ich das tauschen?
sed "s/\.htm'/.php'/g" 1. den Punkt bei .htm solltest Du entwerten, sonst matcht der Ausdruck auch auf xhtm' 2. anderes String delimiter Zeichen (") statt (') so klappts bei mir Andreas
Ulrich Klenk wrote:
Hallo Liste,
bastel gerade an einem Skript (#!/bin/bash), das in mehreren Dateien folgendes ändern soll: .htm' nach .php' (Hochkomma über #). Es funktioniert insoweit, das ich alle Möglichen Zeichen tauschen kann, aber eben nicht besagtes Hochkomma. Versuche mit sed 's|.htm'|.php'|g', 's|.htm\x27|.php\x27|g' blieben Erfolglos auch /' , /'/ , \'\ , \d#039 .....
Besser mmv benutzen, z.B. mmv -x '*.htm' '#1.php' siehe auch "man mmv", ggf. wg. des (ungewöhnlichen) Hochkomma im Dateinamen - Matthias
Matthias Kleine schrieb am 29.05.01 10:16:49:
Ulrich Klenk wrote:
bastel gerade an einem Skript (#!/bin/bash), das in mehreren Dateien folgendes ändern soll: .htm' nach .php' (Hochkomma über #). Es funktioniert insoweit, das ich alle Möglichen Zeichen tauschen kann, aber eben nicht besagtes Hochkomma. Versuche mit sed 's|.htm'|.php'|g', 's|.htm\x27|.php\x27|g' blieben Erfolglos auch /' , /'/ , \'\ , \d#039 .....
Besser mmv benutzen, z.B.
mmv -x '*.htm' '#1.php'
siehe auch "man mmv", ggf. wg. des (ungewöhnlichen) Hochkomma im Dateinamen
Nicht ganz, kleiner Denkfehler. Mit sed änderst Du Vorkommen innerhalb des Dateitextes, nicht den Dateinamen. Ulrich will wahrscheinlich seine html-Dateien komplett auf php umstellen, darum auch die Hochkommata. Gruss, Antje -- Antje M. Bendrich list@bendrich.de http://www.bendrich.de
participants (5)
-
Andreas Kyek
-
Antje Bendrich
-
Bernd Brodesser
-
Matthias Kleine
-
Ulrich Klenk