Hallo Liste, vielleicht könnt ihr mir ja nochmal helfen. Ich habe gerade ein ganzes PHP-Projekt mit wget gesichert, um den Quellcode raus zu bekommen und eine statische Seite zu erzeugen. Sie soll auch offline lesbar sein. Problem ist jetzt hier nur, das alle Dateien .php heissen und auch die links im HTML-Code verweisen ja auf .php. Womit kann ich die alle auf einmal ersetzen (den kompletten Verzeichnissbaum)? Und die Dateinamen müssten auch geändert werden... Hat jemand zu soetwas einen Rat? Ich wär sehr dankbar! Mfg, Christian -- _______________________________________________________________________ Support your local Club! ...visit: http://www.butanclub.de/
Hi, On Friday, February 08, 2002 at 18:03:43, Christian Schneider wrote:
vielleicht könnt ihr mir ja nochmal helfen.
Ich habe gerade ein ganzes PHP-Projekt mit wget gesichert, um den Quellcode raus zu bekommen und eine statische Seite zu erzeugen. Sie soll auch offline lesbar sein. Problem ist jetzt hier nur, das alle Dateien .php heissen und auch die links im HTML-Code verweisen ja auf .php.
Womit kann ich die alle auf einmal ersetzen (den kompletten Verzeichnissbaum)? Und die Dateinamen müssten auch geändert werden...
Hat jemand zu soetwas einen Rat?
mmv installieren und dann man mmv lesen. Henne -- Hendrik Vogelsang aka Henne mailto: hvogel@hennevogel.de If you could be either God's worst enemy or nothing, which would you choose? # fightclub sigs made with fortune
Christian Schneider wrote:
Hallo Liste,
vielleicht könnt ihr mir ja nochmal helfen.
Ich habe gerade ein ganzes PHP-Projekt mit wget gesichert, um den Quellcode raus zu bekommen und eine statische Seite zu erzeugen. Sie soll auch offline lesbar sein. Problem ist jetzt hier nur, das alle Dateien .php heissen und auch die links im HTML-Code verweisen ja auf .php.
Womit kann ich die alle auf einmal ersetzen (den kompletten Verzeichnissbaum)? Und die Dateinamen müssten auch geändert werden...
So dürfte das gehen (ungetestet...) --- schnipp --- #!/bin/sh # in den files ersetzen for file in `find . -type f -name "*.php"`; do cat $file | sed -e s/".php"/".html" > /tmp/out mv /tmp/out $file done: # files umbenennen for file in `find . -type f -name "*.php"`; do mv $file `basename $file .php`.html done; --- schnapp --- Grüße Rene
Hat jemand zu soetwas einen Rat?
Ich wär sehr dankbar!
Mfg, Christian
-- ============================================ Wuppertal Instiut für Klima, Umwelt, Energie Abteilung Energie - Rene Engelhard Döppersberg 19, 41203 Wuppertal Tel.: +49-(0)202-2492-109 eMail: mail@rene-engelhard.de Homepage: http://www.wupperinst.org ============================================
Hallo +, Rene Engelhard wrote:
Christian Schneider wrote:
vielleicht könnt ihr mir ja nochmal helfen.
Ich habe gerade ein ganzes PHP-Projekt mit wget gesichert, um den Quellcode raus zu bekommen und eine statische Seite zu erzeugen. Sie soll auch offline lesbar sein. Problem ist jetzt hier nur, das alle Dateien .php heissen und auch die links im HTML-Code verweisen ja auf .php.
Das wird nicht gehen. Das mit dem Offline lesen kannst Du vergessen. Oder Du kösst das alles so, schiebst alles in Dein ~/public_html und schast Dir das mit <browser> http://localhost/~<deinuser>/<startfile> an...
Womit kann ich die alle auf einmal ersetzen (den kompletten Verzeichnissbaum)? Und die Dateinamen müssten auch geändert werden...
So dürfte das gehen (ungetestet...)
Das Skript ist damit hinfällig. Grüße Rene P.S: Sorry für den Müll nach den grüßen bei meiner letzten Mail. War ich ein wenig zu schnell...
* Rene Engelhard schrieb am 08.02.02 um 18:10 Uhr:
Christian Schneider wrote:
Hallo Liste,
vielleicht könnt ihr mir ja nochmal helfen.
Ich habe gerade ein ganzes PHP-Projekt mit wget gesichert, um den Quellcode raus zu bekommen und eine statische Seite zu erzeugen. Sie soll auch offline lesbar sein. Problem ist jetzt hier nur, das alle Dateien .php heissen und auch die links im HTML-Code verweisen ja auf .php.
Womit kann ich die alle auf einmal ersetzen (den kompletten Verzeichnissbaum)? Und die Dateinamen müssten auch geändert werden...
So dürfte das gehen (ungetestet...)
--- schnipp --- #!/bin/sh
# in den files ersetzen for file in `find . -type f -name "*.php"`; do cat $file | sed -e s/".php"/".html" > /tmp/out ^ hier muss/sollte noch ein /g hin (/ muss, g sollte)
mv /tmp/out $file done:
Gruss -Marc -- +-O . . . o . . . O . . . o . . . O . . . ___ . . . O . . . o .-+ | Ein neuer Service von Links2Linux.de: / o\ RPMs for SuSE | | --> PackMan! <-- naeheres unter | __| and others | | http://packman.links2linux.de/ . . . O \__\ . . . O . . . O . |
Marc Schiffbauer wrote:
* Rene Engelhard schrieb am 08.02.02 um 18:10 Uhr:
cat $file | sed -e s/".php"/".html" > /tmp/out ^ hier muss/sollte noch ein /g hin (/ muss, g sollte)
Ja, das / habe ich vergessen. Aber was macht das g? Grüße Rene
On Fri, 8 Feb 2002, Rene Engelhard wrote:
Marc Schiffbauer wrote:
* Rene Engelhard schrieb am 08.02.02 um 18:10 Uhr:
cat $file | sed -e s/".php"/".html" > /tmp/out ^ hier muss/sollte noch ein /g hin (/ muss, g sollte)
Ja, das / habe ich vergessen. Aber was macht das g?
Es ist hier AFAIK ueberfluessig, da sed zeilenweise arbeitet, das zu aendernde ".php" aber nur einmal vorkommt. "g" sorgt dafuer, dass mehrfaches Vorkommen Beruecksichtigung findet (=global), das ist aber hier nicht so. Also geht es ohne. Gruss Peter Blancke -- Nachtwaechter ist der Wahnsinn, weil er wacht...
* Peter Blancke schrieb am 08.02.02 um 21:02 Uhr:
On Fri, 8 Feb 2002, Rene Engelhard wrote:
Marc Schiffbauer wrote:
* Rene Engelhard schrieb am 08.02.02 um 18:10 Uhr:
cat $file | sed -e s/".php"/".html" > /tmp/out ^ hier muss/sollte noch ein /g hin (/ muss, g sollte)
Ja, das / habe ich vergessen. Aber was macht das g?
Es ist hier AFAIK ueberfluessig, da sed zeilenweise arbeitet, das zu aendernde ".php" aber nur einmal vorkommt. "g" sorgt dafuer, dass mehrfaches Vorkommen Beruecksichtigung findet (=global), das ist aber hier nicht so. Also geht es ohne.
Wer sagt denn, dass es in den php-Dateien nicht zwei Vorkommen in einer Zeile geben kann? -Marc -- BUGS My programs never have bugs. They just develop random features. If you discover such a feature and you want it to be removed: please send an email to bug@links2linux.de
On Fri, 8 Feb 2002, Marc Schiffbauer wrote:
* Peter Blancke schrieb am 08.02.02 um 21:02 Uhr:
On Fri, 8 Feb 2002, Rene Engelhard wrote:
Marc Schiffbauer wrote:
* Rene Engelhard schrieb am 08.02.02 um 18:10 Uhr:
cat $file | sed -e s/".php"/".html" > /tmp/out ^ hier muss/sollte noch ein /g hin (/ muss, g sollte)
Ja, das / habe ich vergessen. Aber was macht das g?
Es ist hier AFAIK ueberfluessig, da sed zeilenweise arbeitet, das zu aendernde ".php" aber nur einmal vorkommt. "g" sorgt dafuer, dass mehrfaches Vorkommen Beruecksichtigung findet (=global), das ist aber hier nicht so. Also geht es ohne.
Wer sagt denn, dass es in den php-Dateien nicht zwei Vorkommen in einer Zeile geben kann?
Hmmm... Ja, das sagt wirklich niemand. Aber dann muss der sed-Ansatz ohnehin anders erfolgen, naemlich auf einen Test hin, dass das ".php" auch am Zeilenende steht. Ergo: Das Dollarzeichen muss her. Also dann: cat $file | sed -e s/".php$"/".html"/ > /tmp/out Jetzt jeder zufrieden? Gruebel: Hatte ich schon einmal einen Dateinamen wie beispielsweise "das-da.php.toll-das.php--wirklich.php"? Doch Du hast prinzipiell Recht: Theoretisch ist das denkbar, also Grundprinzip Nr. 1 fuer Linuxer und Webprogrammierer: Sauber arbeiten! Gruss Peter Blancke -- Nachtwaechter ist der Wahnsinn, weil er wacht...
* Peter Blancke schrieb am 08.02.02 um 22:51 Uhr:
On Fri, 8 Feb 2002, Marc Schiffbauer wrote:
* Peter Blancke schrieb am 08.02.02 um 21:02 Uhr:
On Fri, 8 Feb 2002, Rene Engelhard wrote:
Marc Schiffbauer wrote:
* Rene Engelhard schrieb am 08.02.02 um 18:10 Uhr:
cat $file | sed -e s/".php"/".html" > /tmp/out ^ hier muss/sollte noch ein /g hin (/ muss, g sollte)
Ja, das / habe ich vergessen. Aber was macht das g?
Es ist hier AFAIK ueberfluessig, da sed zeilenweise arbeitet, das zu aendernde ".php" aber nur einmal vorkommt. "g" sorgt dafuer, dass mehrfaches Vorkommen Beruecksichtigung findet (=global), das ist aber hier nicht so. Also geht es ohne.
Wer sagt denn, dass es in den php-Dateien nicht zwei Vorkommen in einer Zeile geben kann?
Hmmm... Ja, das sagt wirklich niemand.
Aber dann muss der sed-Ansatz ohnehin anders erfolgen, naemlich auf einen Test hin, dass das ".php" auch am Zeilenende steht.
Nein! Warum? Im HTML-Quelltext kann doch <a href="bla.php"><a href="blub.php"> stehen?
Ergo: Das Dollarzeichen muss her.
nö
Also dann:
cat $file | sed -e s/".php$"/".html"/ > /tmp/out
Jetzt jeder zufrieden?
nö ;) Gruss -Marc -- +-O . . . o . . . O . . . o . . . O . . . ___ . . . O . . . o .-+ | Ein neuer Service von Links2Linux.de: / o\ RPMs for SuSE | | --> PackMan! <-- naeheres unter | __| and others | | http://packman.links2linux.de/ . . . O \__\ . . . O . . . O . |
On Fri, 8 Feb 2002, Marc Schiffbauer wrote:
* Peter Blancke schrieb am 08.02.02 um 22:51 Uhr:
On Fri, 8 Feb 2002, Marc Schiffbauer wrote:
* Peter Blancke schrieb am 08.02.02 um 21:02 Uhr:
On Fri, 8 Feb 2002, Rene Engelhard wrote:
Marc Schiffbauer wrote:
* Rene Engelhard schrieb am 08.02.02 um 18:10 Uhr: > cat $file | sed -e s/".php"/".html" > /tmp/out ^ hier muss/sollte noch ein /g hin (/ muss, g sollte)
Ja, das / habe ich vergessen. Aber was macht das g?
Es ist hier AFAIK ueberfluessig, da sed zeilenweise arbeitet, das zu aendernde ".php" aber nur einmal vorkommt. "g" sorgt dafuer, dass mehrfaches Vorkommen Beruecksichtigung findet (=global), das ist aber hier nicht so. Also geht es ohne.
Wer sagt denn, dass es in den php-Dateien nicht zwei Vorkommen in einer Zeile geben kann?
Hmmm... Ja, das sagt wirklich niemand.
Aber dann muss der sed-Ansatz ohnehin anders erfolgen, naemlich auf einen Test hin, dass das ".php" auch am Zeilenende steht.
Nein! Warum?
Im HTML-Quelltext kann doch <a href="bla.php"><a href="blub.php"> stehen?
Ist ein Problem der verstuemmelten Ursprungsmail. Die war nicht mehr vollstaendig. Ich nahm an, dass bei dem Befehl cat $file | sed -e s/".php"/".html" > /tmp/out eine Datei $file lauter Dateinamen enthaelt, bei der das Kuerzel ".php" veraendert werden soll. Ich wusste nicht, dass es um Quelltext geht. Es hatte mich ohnehin verwundert, wer da saemtliche Dateinamensaenderungen veraendern wollte.
Jetzt jeder zufrieden?
nö ;)
Jetzt vielleicht? Ein bisschen wenigstens? ;-)) Gruss Peter Blancke -- Nachtwaechter ist der Wahnsinn, weil er wacht...
On Fri, 8 Feb 2002, Christian Schneider wrote:
Ich habe gerade ein ganzes PHP-Projekt mit wget gesichert, um den Quellcode raus zu bekommen und eine statische Seite zu erzeugen. Sie soll auch offline lesbar sein. Problem ist jetzt hier nur, das alle Dateien .php heissen und auch die links im HTML-Code verweisen ja auf .php.
Womit kann ich die alle auf einmal ersetzen (den kompletten Verzeichnissbaum)? Und die Dateinamen müssten auch geändert werden...
Ausser den bereits gegebenen Tipps: Hast Du keinen Zugang zu Deinem Server mittels ftp oder shell? Rein in die Shell, mit tar das ganze gepackt und mit ftp abgeholt. Oder rsync... Wir diskutieren es gerade in einem anderen Thread! Gruss Peter Blancke -- Nachtwaechter ist der Wahnsinn, weil er wacht...
Moin Moin, Am Samstag, 9. Februar 2002 10:44 schrieb Stefan Onken:
Am Freitag, 8. Februar 2002 18:03 schrieb Christian Schneider:
Womit kann ich die alle auf einmal ersetzen (den kompletten Verzeichnissbaum)? Und die Dateinamen müssten auch geändert werden...
Mein Lieblingseinzeiler, ändert aber nur in den Dateien. perl -p -i.bak -e 's/SUCHE/ERSETZE/g' *.dateien. perl legt automatisch Backupdateien (*.bak) an, weiter info's bekommst Du mit 'perldoc perlre'. ByE Andre
participants (7)
-
Andre Heine
-
Christian Schneider
-
Henne Vogelsang
-
Marc Schiffbauer
-
Peter Blancke
-
Rene Engelhard
-
Stefan Onken