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

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Wie sucht man nach einem Text und ersetzt ihn?? thx

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





BeitragVerfasst am: 23. Sep 2002 12:48   Titel: Wie sucht man nach einem Text und ersetzt ihn?? thx

Hallo Leute,

ich bin in sachen Linux sehr unerfahren und bräuchte Eure hilfe.

Ich müss einen Text der in mehreren Datein vorkommt suchen und durch einen anderen Text ersetzen.
Das ganze soll auch mit den Sub-Directories funktionieren.

habt ihr da einen ahnung wie das funktioniert?

Thx
Bernd
 

Vitalienbruder
Gast





BeitragVerfasst am: 23. Sep 2002 14:22   Titel: Re: Wie sucht man nach einem Text und ersetzt ihn?? thx

Nur eine Idee, wird so nicht funktionieren:

find . -type f -exec sed_inplace s/altertext/neuertext/g ;

Würde alle Dateien (auch binary) unterhab vom aktuellen Verzeichnis durchsuchen. sed_inplace ist eine Variante von sed, die "inline find/replace" machen kann. Mußt du vermutlich noch installieren und dir die Syntax zu gemüte führen und ein wenig experimentieren.

Nur als Idee
 

Jochen
Gast





BeitragVerfasst am: 23. Sep 2002 14:24   Titel: Re: Wie sucht man nach einem Text und ersetzt ihn?? thx

Och, nicht weiter schwer, aber nicht erschrecken :
code:
find . -type f | xargs perl -p -i.orig -e 's/suchtext/ersetztext/g'

"find" findet ab dem aktuellen Verzeichnis alle normalen Dateien und gibt deren Namen über die Pipe an xargs. Der baut aus diesen Namen und dem perl-Kommando den Perl-Aufruf zusammen. perl ackert die Datein einzeln ab. In jeder dieser Dateien wird in-place (-i) der suchtext in jeder Zeile (-p) durch den ersetztext ersetzt, soweit vorhanden (-e 's/suchtext/ersetztext/g'). Zur Sicherheit legt perl Kopien der Originaldateien mit der Endung .orig an an (Optionsargument ".orig" zu -i).

Verbessern könnte man vielleicht noch das find-Kommando. Wenn die Dateien einen bestimmten Namensteil haben (beispielsweise .c als Endung), könnte man auch

find . -name "*.c" -type f | undsoweiter

schreiben und perl müsste dann nicht so viele unnütze Dateien durchackern.

Jochen
 

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