Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Suchen und ersetzen!

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Sonstiges
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Bob+Gomorrha
Gast





BeitragVerfasst am: 29. Jul 2002 20:37   Titel: Suchen und ersetzen!

Ich habe in einem Verzeichnis 32 Dateien *.html.

In all diesen Dateien möchte ich den Text index.html durch index.php ersetzen.

Dank im Voraus

bg
 

tj
Gast





BeitragVerfasst am: 29. Jul 2002 21:03   Titel: Re: Suchen und ersetzen!

Hi Bob,

hab leider gerade keine html Dateien zum ausprobieren, aber

for file in *.html; do mv $file `basename $file .html`.php; done

oder so aehnlich muesste den Job machen.

tj
 

tuxic trace
Gast





BeitragVerfasst am: 30. Jul 2002 8:41   Titel: Re: Suchen und ersetzen!

find . -name "*.html" -exec perl s/index.html/index.php/g {} ;

Das Problem ist, das perl Kommando stimmt so nicht ganz, ist erstmal nur die Idee dahinter. Ich hab die korrekte Syntax leider nicht im Kopf. Da fehlt auf jeden Fall noch ein switch. Vermutlich mußt Du auch die "/" noch maskieren:

find . -name "*.html" -exec perl s\/index.html\/index.php\/g {} ;

Weiß ich nicht und werde ich vermutlich nie lernen. Ist nur ne Idee, bis jemand hier mit einer brauchbaren Lösung ankommt.
Alternativ gibt es ein Programm namens "sed_inline". Wie der Name nahelegt, eine sed Version, die "inline replacements" machen kann.
Solltest Du also fit auf sed sein, evtl. eine günstigere Möglichkeit als perl.

vi kann das auch, aber ich weiß leider nicht, wie :(

Ok, wirklich hilfreich ....
 

Bob Gomorrha
Gast





BeitragVerfasst am: 30. Jul 2002 9:42   Titel: Re: Suchen und ersetzen!

Danke vorerst mal für die Antworten - werd´s heute abend auf einer Kopie testen. Sag euch dann Bescheid.
 

Bob Gomorrha
Gast





BeitragVerfasst am: 30. Jul 2002 15:55   Titel: Re: Suchen und ersetzen!

Leider Fehlanzeige!

Hab mich aber vielleicht auch falsch ausgedrückt.

32 Dateien, die alle auf *.html enden.

IN diesen Dateien (im HTML-Code) gibt es Verweise auf die index.html. Jetzt soll IN diesen Dateien der Verweis aber nicht mehr auf
index.html sondern auf index.php lauten. Also im Prinzip: suche index.html und ersetze durch index.php.

Dank schon mal

bg
 

Descartes
Gast





BeitragVerfasst am: 30. Jul 2002 16:25   Titel: Re: Suchen und ersetzen!

perl -np -i.bak -e 's/index.html/index.php/g' *.html
Eventuell muss man im s/// Aufruf noch den Punkt noch maskieren -- grad nicht getestet

Mit dem Parameter "-i.bak" wird von jeder veränderten Datei eine Sicherungskopie mit Dateiendung *.bak angelegt. Wenn du keine Sicherungsdateien benötigst, dann lass einfach den Parameter -i.bak komplett weg.


mit Hilfe von find lassen sich dann auch gleich Unterverzeichnisse durchsuchen

find . -type f -name "*.html" -exec perl -np -i.bak -e 's/index.html/index.php/g' {} ;

wobei -exec jeweils einen neuen Prozess forkt und ab einer gewissen Trefferanzahl der find Aufruf mit xargs performanter ist

find . -type f -name "*.html" | xargs perl -np -i.bak -e 's/index.html/index.php/g'
 

Bob Gomorrha
Gast





BeitragVerfasst am: 30. Jul 2002 16:39   Titel: Re: Suchen und ersetzen!

Guru, Guru!!!

Mächtig Skriptgut, Descartes!

Die erste Zeile hat auf Anhieb funktioniert.

Dank Dir nochmal.

bg
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Sonstiges Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy