Jan (ich) wrote: [...]
Folgende Variante klappt bei mir:
jan@lotlinux:/home/jan > ls *\ * | sed 's/ /_/g' >liste jan@lotlinux:/home/jan > cat liste leer_datei neu_datei jan@lotlinux:/home/jan > for dat in `cat liste`
do odat="`echo $dat | sed 's/_/ /g'`" mv "$odat" $dat done jan@lotlinux:/home/jan >
Der Witz ist eigentlich daran, dass die Dateinamen zweimal gedreht werden und damit die for-Schleife sauber funktioniert.
Was nicht so witzig ist, mir aber erst jetzt einfiel: Das klappt nicht, wenn die Dateien im Original auch das "_" enthielten (dann steht nämlich in $odat ein falscher Name, z. B. bei "fast_leere datei"). Da fällt mir jetzt zur Rettung nur noch folgende Variante ein: 1. Wir basteln uns ein Shell-Script mv_leer: odat="$*" ndat=`echo $odat | sed 's/ /_/g'` mv "$odat" $ndat 2>/dev/null && echo "mv $odat $ndat --> ok" \ || echo "mv $odat $ndat --> error" exit 0 2. Wir führen aus: jan@lotlinux: > chmod 755 mv_leer jan@lotlinux: > find . -name "*\ *" -exec /home/jan/mv_leer {} \; mv ./leer datei ./leer_datei --> ok mv ./neu datei ./neu_datei --> ok mv ./ganz leere datei ./ganz_leere_datei --> ok mv ./fast_leere datei ./fast_leere_datei --> ok jan@lotlinux: > So, jetzt sollten alle Eventualitäten abgefangen sein. Jan --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com