Linux 14.983 Themen, 106.385 Beiträge

sed im Verzeichnisbaum

edico / 6 Antworten / Flachansicht Nickles

Hej,

Wie kann ich sed rekursiv für alle HTML-Dateien in allen SUBs (aller DIRs) anwenden? Es geht darum, die Pfade von HTML-Files (einer Bibliothek) Windows-like zu transferieren und Links und Verweise anzupassen.

Für ein bestimmtes (Working-)DIR schauts so aus (positiv):
for i in *.html; do
sed \'s#/home/ds#file:///e:#\' $WORKDIR/$i > $WORKDIR/filetmp;
mv $WORKDIR/filetmp $WORKDIR/$i;
done

Um alle SUBs im DIR (bzw. mehreren DIRs) anzuspringen, muss ich wohl irgendwie den TREE abarbeiten:

$ for f in ???; do
for i in *.html; do
sed ...
done
done

Was steht für ??? - muss ich mir eine SUB-Liste erstellen (wie wäre das dann) ... oder laufe ich in die falsche Richtung und gibts da was schnuckeliges Einfaches?

Danke. edico

bei Antwort benachrichtigen
edico Nachtrag zu: „sed im Verzeichnisbaum“
Optionen

Hej
@Klaus: für deine Bibliothek
@alle: die es interessiert

die Lösung sieht so aus:
for i in `find $WORKDIR -name '*.htm*'`; do
sed 's#/home/ds#file:///e:#' $i > $i.bak;
mv $i.bak $i;
done

Danke.edico

bei Antwort benachrichtigen