[CentOS] Fixing filenames with directories with spaces in the names

John Doe jdmls at yahoo.com
Tue Dec 28 11:02:45 UTC 2010


From: Craig White <craigwhite at azapple.com>

> for old in `cat "$FILENAME"`;do
>   echo  "$old"
>   dirname "$old"
>   new="$(echo $old | sed  's/\*/\-/')"
> done
> I'm trying to take out some stupid Macintosh things  - in this case
> filenames with asterisks but I have others like tilde's and  probably
> others that I haven't come across.
> Anyway, $FILENAME  has...
> /tmp/New Woman In Field/*NEW woman in field.psd
> /tmp/New Woman  In Field/*NEW woman in field 2.eps
> /tmp/New Woman In Field/*NEW woman in  field 2.psd
> and the echoes are broken with spaces like this (which of  course  doesn't
> work)...

Not sure what you are trying to do (delete or rename or...), but try "while 
read" instead of for (especially since the cmdline is limited)...
Example:

cat "$FILENAME" | while read OLD
  do
    NEW=$(echo "$OLD" | sed 's/\*/\-/')
    mv -i "$OLD" "$NEW"
  done

JD


      



More information about the CentOS mailing list