Archiv verlassen und diese Seite im Standarddesign anzeigen : find und sed - Dateiinhalt ersetzen
Danny D.
18-02-2002, 12:37
Hallo!
hat jemand einen Vorschlag wie ich mit 'find' und 'sed' Dateien rekursiv ändern kann.
Da 'find' eine Liste mit Datei-Namen zurück gibt, kann ich mit 'sed' keine Ersetzung vornehmen.
Hat jemand einen guten "Kniff" wie ich die Sache elegant lösen kann?
Bin für jeden Hinweis dankbar!
Grüße
Danny
Ein kleines Script, welches jede Zeile der Ausgabe von find als Parameter von sed übergibt. Eben Zeilenweiße.
Das geht recht einfach, wenn du die Ausgabe von find in eine Schleife, die mit read sie Ausgabe Zeilenweiße einliest und Anschlisend die Variable als Parameter für sed übergibt.
mightymike99
18-02-2002, 23:58
quick&dirty z. B. so:
for FILE in $(find -type f -name "*" )
do
sed -e <sed_Kommando> $FILE >/tmp/tmpfile
mv /tmp/tmpfile $FILE
done
Gruß
Tobias
Da muss ich dich enttäuschen. Dieses Script lässt sehr zu wünschen übrig.
hier das fertige Script:
find <...> | while read -r FILE
do
cat $FILE | sed <...> >/tmp/$$-temp
mv $$-temp $FILE
done
Dieses Script kommt auch mit 100 Dateien noch immer zurecht. Sogar einige Millionen Dateien wären kein Problem.
Zudem kann sogar Multitasking genutzt werdem. Es wird gesucht und zugleich verarbeitet.
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.