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

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
script zum "replacen"

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
wittmann



Anmeldungsdatum: 06.08.2004
Beiträge: 26

BeitragVerfasst am: 03. Feb 2005 17:37   Titel: script zum "replacen"

Hallo zusammen,

ich suche ein script ( z.B. in Perl) , welches einen
Verzeichnisbaum durch geht und in den Dateien
"Wort1" durch "Wort2" ersetzt. kann jemand
einem Neuling durch Code , Netzressouren und
ähnlichem aushelfen (Gerne auch Teillösung wie
z.B. ersetzen in allen Dateien eines Verzeichnisses.
Dank Euch im Voraus !!!

Gruß

Michael Wittmann
 
Benutzer-Profile anzeigen Private Nachricht senden

Lateralus
prolinux-forum-admin


Anmeldungsdatum: 05.05.2004
Beiträge: 1238

BeitragVerfasst am: 03. Feb 2005 22:52   Titel:

sed dürfte dies können, aber frag mich nicht, was du da eingeben musst. "man sed"

und ansonsten: jürgen
edit: ach quatsch, natürlich jochen!


Zuletzt bearbeitet von Lateralus am 04. Feb 2005 14:54, insgesamt 1-mal bearbeitet
 
Benutzer-Profile anzeigen Private Nachricht senden

jochen
prolinux-forum-admin


Anmeldungsdatum: 14.01.2000
Beiträge: 699
Wohnort: Jülich

BeitragVerfasst am: 04. Feb 2005 9:56   Titel:

EIn kleines Shellskript reicht aus: find durchsucht Dir einen Verzeichnisbaum rekursiv und gibt die Namen der Dateien aus, xargs nimmt diese Namen und bastelt sie zu einer Argumentliste für ein kleines perl-Skriptchen:
Code:
find . -type f -print0 | xargs -0 perl -p -i.bak -e 's/wort1/wort2/g'
Bei find kann man mittels -name, -user, -perm usw. die zu bearbeitenden Dateien sehr schön herausfiltern. "man find" hilft weiter. xargs nimmt die Ausgaben von find und übergibt sie als Argumente an dern perl-Einzeiler. Das s//-Kommando tauscht wort1 gegen wort2 aus, und zwar in jeder Datei in allen Zeilen. Diese Ersetzung geschieht in-place, d.h. in der eigentlichen Dateil. Aus Sicherheitsgründen werden die Originaldateien vorher kopiert in eine Sicherungsdatei mit der zusätzlichen Endung .bak.

Jochen
_________________
Die grösste Lüge der EDV? "Mal eben..."
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

wittmann



Anmeldungsdatum: 06.08.2004
Beiträge: 26

BeitragVerfasst am: 04. Feb 2005 18:23   Titel: Super

Hallo,

hat genauso geklappt wie ichs mir vorgestellt hatte.
Recht herzlichen Dank !
Danke auch für die weiterführende Info

Gruß

Michael Wittmann
 
Benutzer-Profile anzeigen Private Nachricht senden

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

 
Gehen Sie zu:  

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