Archiv verlassen und diese Seite im Standarddesign anzeigen : Programm zur Ersetzung von "\" durch "/"
Hallo,
ich habe folgendes Problem:
- Ich habe für einen Windows Server eine Webseite erstellt. Diese möchte ich
nun jedoch unter einem Linux Server betreiben. Das Problem ist jedoch, dass
ich in allen HTML-Dokumenten einen "\" für z.B. Bilder benutzt habe, Linux
für Pfadangaben jedoch nur den Slash kennt.
- Gibt es ein Programm mit dem ich automatisch alle vorhandenen \ gegen /
ersetzen kann?
Ich habe nämlich keine Lust alle Seiten manuell umzustellen.
Gruß macbest
zb.
sed -e 's#\\#/#g' infile > outfile oder falls du die alten Files nicht behalten willst:
sed -ie 's#\\#/#g' infile oder in einem Texteditor deiner Wahl mit dem Ersetzen-Werkzeug.
Alle html-Dateien im aktuellen Verzeichnis:
find . -iname '*.html' -type f -exec sed -ie 's#\\#/#g' {} \; vor diesem Befehl noch ein [code]find . -iname '*.html' -type f machen, damit du siehst welche Dateien alle verändert werden.
Ich empfehle dir vorher ein Backup zu machen.
HTH jeebee
edit: setzt alles die Linux-Kommandozeile voraus.
peschmae
01-06-2008, 18:04
Nuja,
find -name "*.html" -exec sed s#\\\\#/#g -i {} \;
Aber das geht natürlich nur dann gut wenns keine \ im Dokument hat die nicht ersetzt werden sollten...
MfG Peschmä
Moin,
zb.
sed -e 's#\\#/#g' infile > outfile
der Code ist ja ok, aber ich frage mich immer wieder, warum Ihr meint, dem sed bei jeder Gelegenheit die -e-Option andienen zu müssen?
Aus man sed:
-e script, --expression=script
add the script to the commands to be executed
Da gibts doch gar nichts, wozu man hinzufügen müsste! Der o. g. sed funktioniert ohne -e-Option genauso gut. Das macht doch nur Sinn, wenn Ihr z. B. mittels mehrerer -e-Optionen nacheinander unterschiedliche (nacheinender abzuarbeitende) Operationen anhängen wollt.
Für den 99%-0815-sed ist diese Option schlicht und einfach überflüssig. Lasst das weg, wenn Ihr es nicht unbedingt braucht.
Jan
Ok, danke. Wusst ich gar nicht :o
Hallo,
danke für die Antwort. Also das funktioniert ja richtig gut. Hätte nicht gedacht, dass man das so einfach machen kann.
Weitere Frage:
- Wie kann ich die folgende Zeichenfolge umwandeln?
"/
Grund:
Ich hatte die Seite vorher immer direkt unter /htdocs/ auf dem Server.
Nun möchte ich sie in einem Unterordner z.B. /htdocs/webseite/ ablegen. Das Problem ist jedoch, dass ich alle Links in untergeordnete Ordner (z.B. /hdocs/bilder) wie folgt gesetz habe: src="/bilder/bild.jpeg". Das bedeutet ja im Klartext dass immer vom root-ordner aus gesucht wird.
Ein Bild unter: /localhost/webseite/bilder/ wird mit meiner bisherigen Verlinkung
nun unter /localhost/bilder gesucht. Wenn ich also nun den ersten / in jedem Link wegbekäme würde die Sache funktionieren.
Ich müsste also "/ durch " ersetzen
(D.h. src="/bilder/bild1.jpeg" würde dann zu src="bilder/bild1.peg")
Ich habe es mit:
sed -i 's#\"/##g' Dateiname versucht, funktioniert aber nicht!
Brauche Hilfe.
Gruß,
macbest
ContainerDriver
02-06-2008, 19:38
Hallo,
was genau funktioniert denn daran nicht? Du musst noch ein " einfügen (sonst fehlt das anschließen in der HTML-Datei), meinst du das mit nicht funktionieren?
sed -i 's#\"/#\"#g' Dateiname
Gurß, Florian
Hallo,
nach Eingabe von " sed -i 's#\"/#\"#g' Dateiname " erhalte ich die
Fehlermeldung
-e Ausdruck #1, Zeichen 1: unknown command: ' "
Gruß,
macbest
ContainerDriver
03-06-2008, 16:09
Kannst du mal den genauen Befehlsaufruf posten (am besten aus der Shell kopieren)?
Was ist das denn für ein sed?
Hallo,
also das ist sed in der Version 4.1.5 für Windows.
Eingabe:
c:\users\macbest sed.lnk -i 's#\"/#\"#g' anderes.php
Ausgabe:
C:\Program Files\GnuWin32\bin\sed.exe: -e Ausdruck #1, Zeichen 1: unknown
command: ' "
Gruß macbest
Moin,
ungeprüft: Die \ vor den " sind überflüssig. Innerhalb einfacher Hochkommata wird ein " nicht interpretiert, sondern als das genommen was er ist. Durch die \ gaukelst Du dem sed irgendwelche Zeichenklassen o. a. vor, die es nicht gibt. Also einfach mal
sed -i 's#"/#"#g' Dateiname probieren.
Hm, doch noch einen kurzen Test gemacht - scheint zu stimmen ;-)
jan@jack:~/Development> echo 'hier ein "/ und hier ein " ohne /' | sed 's#"/#"#'
hier ein " und hier ein " ohne /
Jan
Hallo,
so: sed.lnk -i "s#\"/#\"#g" anderes.php hats funktioniert. Danke für die Hilfe.
Gruß Macbest
Hallo,
Es geht um folgende HTML-Datei: (hier nur ein Ausschnitt)
<TABLE CELLSPACING = 0 CELLPADDING = 0 BORDER = 0>
<TR><TD><IMG SRC='matrixmultiplikation_1_1.jpg' WIDTH=7 HEIGHT=8></TD><TD><IMG
SRC='matrixmultiplikation_2_1.jpg' WIDTH=31 HEIGHT=8></TD><TD><IMG SRC='matrixmultiplikation_3_1.jpg' WIDTH=64
HEIGHT=8></TD><TD><IMG SRC='matrixmultiplikation_4_1.jpg' WIDTH=63 HEIGHT=8></TD><TD><IMG
SRC='matrixmultiplikation_5_1.jpg' WIDTH=59 HEIGHT=8></TD><TD><IMG SRC='matrixmultiplikation_6_1.jpg' WIDTH=41
HEIGHT=8></TD><TD><IMG SRC='matrixmultiplikation_7_1.jpg' WIDTH=63 HEIGHT=8></TD><TD><IMG
SRC='matrixmultiplikation_8_1.jpg' WIDTH=66 HEIGHT=8></TD><TD><IMG SRC='matrixmultiplikation_9_1.jpg' WIDTH=61
HEIGHT=8></TD><TD><IMG SRC='matrixmultiplikation_10_1.jpg' WIDTH=30 HEIGHT=8></TD></TR>
<TR><TD><IMG SRC='matrixmultiplikation_1_2.jpg' WIDTH=7 HEIGHT=38></TD><TD><IMG
SRC='matrixmultiplikation_2_2.jpg' WIDTH=31 HEIGHT=38></TD><TD><IMG SRC='matrixmultiplikation_3_2.jpg'
WIDTH=64 HEIGHT=38></TD><TD><IMG SRC='matrixmultiplikation_4_2.jpg' WIDTH=63 HEIGHT=38></TD><TD><IMG
SRC='matrixmultiplikation_5_2.jpg' WIDTH=59 HEIGHT=38></TD><TD><IMG SRC='matrixmultiplikation_6_2.jpg'
WIDTH=41 HEIGHT=38></TD><TD><IMG SRC='matrixmultiplikation_7_2.jpg' WIDTH=63 HEIGHT=38></TD><TD><IMG
SRC='matrixmultiplikation_8_2.jpg' WIDTH=66 HEIGHT=38></TD><TD><IMG SRC='matrixmultiplikation_9_2.jpg'
WIDTH=61 HEIGHT=38></TD><TD><IMG SRC='matrixmultiplikation_10_2.jpg' WIDTH=30 HEIGHT=38></TD></TR>
<TR><TD><IMG SRC='matrixmultiplikation_1_3.jpg' WIDTH=7 HEIGHT=24></TD><TD><IMG
SRC='matrixmultiplikation_2_3.jpg' WIDTH=31 HEIGHT=24></TD><TD><IMG SRC='matrixmultiplikation_3_3.jpg'
In dieser Datei soll src=' durch src='bilder-matrixmultiplikation/ ersetzt werden. Ich möchte die ganzen Bilder also in einen gesonderten Ordner verschieben.
(Wie man zu so einer Datei kommt: Ich habe mir mit einem Grafikprogramm ein Bild erstellt und dies mit Splitz in ein HTML Dokument mit dem gestückelten Bild als Hintergrundgrafik umgewandelt)
Folgendes habe ich mit sed ausprobiert:
sed.lnk -e "s#src=\'#src=bilder-matrixmultiplikation/#g" 33matrix_mult_inc.php
Mit diesem Befehl habe ich zwar den Quellcode der HTML Datei in der DOS-Box , es wird aber leider nichts geändert.
Was habe ich falsch gemacht?
Gruß,
macbest
Moin,
siehe man sed, Option -i. Die Option hattest Du doch schon mal in Benutzung!
Jan
BTW: Deine Ersetzung ist unvollständig - es fehlt das einleitende Hochkomma nach "src=".
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.