Removing Spaces Linux/Mac

312

bash

I had a bunch of files I needed to upload to a web server.  The filenames contained spaces and we know some web browsers don’t like spaces.  There was this script I found on the web.  It worked out really well.

#!/bin/bash

ls > /tmp/list
# we have to make the list file in a separate
# directory so that it doesn’t get included
# in the list of the current directory!
mv /tmp/list ./list
cat list | tr ‘ ‘ ‘_’ > listnew
# this turns spaces into underscores
FILE_COUNT=$(wc -l list | awk ‘{print $1}’)
LOOP=1
while [ “$LOOP” -le “$FILE_COUNT” ]
do
AWKFEED=”FNR==”$LOOP
# the command to feed awk
# output will be ‘FNR==1’, ‘FNR==2’, ..
OLDFILE=$(awk $AWKFEED list)
NEWFILE=$(awk $AWKFEED listnew)
mv “$OLDFILE” “$NEWFILE”
# keep the quotes to make the shell read file
# names with spaces as one file
LOOP=$(($LOOP+1))
done

rm list
rm listnew

exit 0

To get this to work, create a file in the same directory. Change the mode to make sure the file is executable.

References:
http://www.dba-oracle.com/t_fix_linux_data_file_names_special_characters.htm

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.