Maximilian Steinbauer schrieb:
Hallo Linuxer,
ich habe das Problem, dass ich über viele HTML-Dokumente (auch in Unterverzeichnissen) den Text „Ein-Text-mit-Bindestrich“ gegen „Ein-neuer-Text-mit-Bindestrich“ austauschen muss, was per Hand doch sehr aufwendig ist. Ich hab mir schon in einem File alle *.htm mit Pfad ausgeben lassen und hab ein Regelfile für sed geschrieben, sed gibt aber das Ergebnis auf dem Bildschirm aus. Wie kann ich das Ergebnis am liebsten ins gleiche File zurück schreiben?
Sofort geht nicht, das würde die Datei zerstören. In einer Schleife mit einer temporären Datei: for f in $files ; do #* sed ... ${f} >/tmp/${f}-sed #mv /tmp/${f}-sed $f done Zum Testen hab ich ein # vor das mv gesetzt, wenn Du sicher bist, dass die Dateien nach dem sed korrekt sind, kannst Du das # löschen. #* So geht das nur, wenn in den Dateinamen keine Leerzeichen drin sind. -- Gruss Bernd