[mdlug-newbie] question about scripting

Mathew May mathewmay1 at wowway.com
Fri Jan 6 09:53:03 EST 2012


Thanks a ton! New things to play with. Now I just have to find a few more tasks to do to stretch what I already know and make me try to find new solutions. 

Thanks again, 
Mat 

----- Original Message -----
From: "Raymond Ingles" <Raymond.Ingles at compuware.com> 
To: "A place where there are no dumb (linux related) questions." <mdlug-newbie at mdlug.org> 
Sent: Friday, January 6, 2012 8:31:52 AM 
Subject: Re: [mdlug-newbie] question about scripting 





There’s a page that covers the (many) ways to do it here: 



http://stackoverflow.com/questions/4793892/recursively-rename-files-using-find-and-sed 



I like keeping things conceptually simple, and easy-to-follow. One-liners are fun, but generally too clever to understand six months later. The way * I’d * handle it would be: 



--------------- 

#!/bin/bash 



IFS=`printf '\n\t'` 



for FILE in $(find . -name "*.mp3") 

do 

echo mv $FILE `echo $FILE | tr ' ' '_' | tr '[A-Z]' '[a-z]'` 

done 

---------------- 



There’s a couple tricks there. The main one is the “IFS” bit; that sets the “Internal Field Separator” to just tab and newline, so that spaces in filenames are preserved. I put that at the head of pretty much all my scripts these days, as files with spaces in the name are very common. 



As for the rest, it uses ‘find’ to do the recursion (you could change “*.mp3” to “*” to process all files) and then calls mv for each one. (Note the ‘echo’ before ‘mv’; right now I’m just debugging, so it prints out what it * would * do. Remove that first ‘echo’ to * actually * run the command.) 



Sincerely, 



Ray Ingles (313) 227-2317 



"The America I feel allegiance to isn't the America that requires 

compulsory displays of loyalty." - Ron Rosenbaum 










The contents of this e-mail are intended for the named addressee only. It contains information that may be confidential. Unless you are the named addressee or an authorized designee, you may not copy or use it, or disclose it to anyone else. If you received it in error please notify us immediately and then destroy it . 






From: mdlug-newbie-bounces at mdlug.org [mailto:mdlug-newbie-bounces at mdlug.org] On Behalf Of Mathew May 
Sent: Thursday, January 05, 2012 4:37 PM 
To: A place where there are no dumb (linux related) questions. 
Subject: Re: [mdlug-newbie] question about scripting 




Sorry, 

The script I attached was a variant of the original one. This is the original script: 

#!/bin/bash 

ls | while read -r FILE 
do 
mv -v $FILE `echo $FILE | tr ' ' '_' | tr '[A-Z]' '[a-z]'` 
done 


Thanks, 
Mat 


----- Original Message -----


From: "Mathew May" <mathewmay1 at wowway.com> 
To: mdlug-newbie at mdlug.org 
Sent: Thursday, January 5, 2012 4:23:40 PM 
Subject: [mdlug-newbie] question about scripting 


I am trying to write a script that will go through my current mp3 directory and change any space in a file name to an under score as well as change all upper case characters to lower case. I am new to scripting and I have done pretty good so far, but now I am trying to make my script recursive. 

Here is what I have so far: 

#!/bin/bash 

#ls -R | while read -r FILE 
for FILE in `find /home/mmay3/Music/tori_amos *.mp3 -type f` 
do 
mv -v $FILE `echo $FILE | tr ' ' '_' | tr '[A-Z]' '[a-z]'` 
done 

Any help would be greatly appreciated 
Mat 


_______________________________________________ 
mdlug-newbie mailing list 
mdlug-newbie at mdlug.org 
http://mdlug.org/mailman/listinfo/mdlug-newbie 



_______________________________________________ 
mdlug-newbie mailing list 
mdlug-newbie at mdlug.org 
http://mdlug.org/mailman/listinfo/mdlug-newbie
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mdlug.org/pipermail/mdlug-newbie/attachments/20120106/2a0143e0/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CPWRsig_04_11-03-2010.jpg
Type: image/jpeg
Size: 9440 bytes
Desc: CPWRsig_04_11-03-2010.jpg
URL: <http://mdlug.org/pipermail/mdlug-newbie/attachments/20120106/2a0143e0/attachment-0001.jpg>


More information about the mdlug-newbie mailing list