remove spaces from a file name linux

would like to remove the spaces in a file name.  The spaces can be anywhere in the file name.  

having trouble with this.  it says there is no file

ls -1 | while read file
       do
            newfilename=`echo "$file" | 's/ //g'`
             mv $file $newfilename            
       done

thanks
bje
bjeAsked:
Who is Participating?
 
Terry WoodsConnect With a Mentor IT GuruCommented:
A couple of problems, fixed as follows:
#!/bin/bash
ls -1 | while read file
       do
            newfilename=`echo "$file" | sed 's/ //g'` # you missed "sed" on this line
            mv "$file" $newfilename # you need double quotes around $file on this line
       done

Open in new window


Note that if there are double quotes in a filename, it'll probably fail, but that may not be a problem for you.
0
 
Abhimanyu SuriSr Database EngineerCommented:
/home>ls -1 space*
space 1.txt
space 2.txt


/home>
ls -1 space*|while read file
do
echo $file
Var_newname=`echo $file|sed -e 's/ //'`
echo $Var_newname
mv "${file}" ${Var_newname}
done
space 1.txt
space1.txt
space 2.txt
space2.txt

/home>ls -1 space*
space1.txt
space2.txt

<< Update >>
My bad, Terry has already provided the solution.
0
 
bjeAuthor Commented:
Thank you both.  it is working well.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.