[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