[BraLUG] Datei mit sed umbenennen

Ingo Schaefer ingo at ingo-schaefer.de
Fr Feb 2 14:42:39 CET 2007


Hallo Karsten,
Am Freitag, den 02.02.2007, 13:55 +0100 schrieb Karsten Engelmann:
> Jedenfalls habe ich vor ein ganzes Dateisystem durchsuchen zu lassen und 
> aus allen Dateinamen die Leerzeichen durch Unterstriche zu ersetzen. Ich 
> will jetzt eigentlich nur in einem Verzeichnis die Dateinamen 
> etsprechend ändern. und mich dann vorarbeiten.
> Wie kann ich das mit den Dateinamen machen? Jemand eine Idee?


#!/bin/bash
# removewhitespace.sh

if [ ! $# -eq 1 ] ; then
  exit -1
fi

old=$1

new=`echo $old | sed -e 's/[[:space:]]/_/g'`

mv "$old" "$new"

So, und wenn das gleich durchs ganze Dateisystem gehen soll, kannst Du
find dazu bemuehen.

Alle Verzeichnisse mit Whitespace umbenennen:
find . -type d -name '* *' -exec removewhitespace.sh '{}' \;

Alle Dateien:
find . -type f -name '* *' -exec removewhitespace.sh '{}' \;

Aber: Ich hab es auch nur marginal getestet und es hat gerade eben auch
komische Meldungen gebracht in meiner Testverzeichnishierarchie. (aber
trotzdem funktioniert)

Gruss,
Ingo
-- 
"Milchreis schmeckt hervorragend, wenn man ihn kurz vor dem Verzehr
durch ein saftiges Steak ersetzt."
                                         gefunden bei frag-mutti.de
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: Dies ist ein digital signierter Nachrichtenteil
URL         : <https://list.bralug.de/pipermail/bralug/attachments/20070202/95a10fb2/attachment.sig>


Mehr Informationen über die Mailingliste Bralug