[GLLUG] Need help creating a shell Script

Caleb Cushing xenoterracide at gmail.com
Sat Apr 8 03:20:05 EDT 2006


I actually do have another question about this script. why doesn't mv -i
prompt me before changing the files when it's run like this?

On 4/7/06, Alec Warner <warnera6 at egr.msu.edu> wrote:
>
> Caleb Cushing wrote:
> > haven't tried it yet backing up the directory into a tarball that'll
> take a
> > while. Do you think you could comment it for me? basically programming
> of
> > any kind is a weak point for me. I'm trying to improve. but copying and
> > pasting someone elses code may fix my issue but it won't fix my
> > understanding. "give a man a fish... teach a man to fish..." sort of
> thing.
> >
> >>
> >>
> >>On 4/6/06, Bruce Smith <blubdog at gmail.com> wrote:
> >>
> >>>Disclaimer, backup the directory first!  :-)
> >>>And copy/paste exactly!
> >>>
> >>>You can test without changing anything by adding an "echo" in front of
> >>>the "mv" and optionally commenting out the "set" statements for better
> >>>readability.
> >>>
> >>>One bug (feature?) is it will replace multiple spaces with only ONE
> >>>underscore.
> >>>
> >>>You need to run it with the filename(s) as arguments.  i.e.:
> >>>  /path/to/scriptname *
> >>>  /path/to/scriptname a*
> >>>  /path/to/scriptname 'File to Test this  Thing on.TXT'
> >>>
> >>>- BS
> >>>
> >>>
> >>>#!/bin/sh            # Run using /bin/sh, the Bourne Shell
> >>>infile=upper
> >>>outfile=lower
> >>>for f                # Not sure where 'f' comes from, but it's looping
> throught the standard input, IIRC
> >>>do
> >>>    if [ -f "$f" ]; then # man test will tell you what this does ;)
> >>>        l="$(echo $f|sed 's/ /_/g'|tr "[:${infile}:]"
> "[:${outfile}:]")" # echo file, change ' ' to '_', globally, change upper to
> lower
> >>>
> >>>        if [ "$f" != "$l" ]; then # If the new filename doesn't equal
> the old filename..
> >>>            set -x                # turn off echo
> >>>            mv -i "$f" "$l"       # rename the file
> >>>            set +x                # turn echo back on
> >>>        fi
> >>>     fi
> >>>done
> >>># end of script
> >>>
> >>>
> >>>On 4/6/06, Caleb Cushing < xenoterracide at gmail.com> wrote:
> >>>
> >>>>I need/want to change the names of all the files and folders in my
> >>>
> >>>/music
> >>>
> >>>>directory to where they don't have spaces in them and all the names
> >>>
> >>>are in
> >>>
> >>>>lowercase. This is what I have so far:
> >>>>
> >>>>#!/bin/bash
> >>>>
> >>>>ls -R |                          # List directory recursively
> >>>>sed -e 's/ /_/g' |             # Remove spaces change them to
> >>>
> >>>underscore
> >>>
> >>>>tr [:upper:] [:lower:] |     #change letters from upper to lower
> >>>>
> >>>>that gives me the output of what I would want the directory and file
> >>>>structure to look like when I'm done. I am unsure however how to take
> >>>
> >>>that
> >>>
> >>>>output and move the files and directories to acually look like that
> >>>
> >>>when I
> >>>
> >>>>am finished. It's also the tricky part because if I don't do it
> >>>
> >>>right...
> >>>
> >>>>well it might be an even bigger pain to fix. I pretty sure I have a
> >>>
> >>>lot more
> >>>
> >>>>to do to get this workable... and I'm just having problems wrapping my
> >>>
> >>>brain
> >>>
> >>>>around it.
> >>>>
> >>>>snippet:before
> >>>>#ls -R
> >>>>
> >>>>./3 Doors Down:
> >>>>Away from the Sun  Seventeen Days  The Better Life   Thumbs.db
> >>>
> >>>desktop.ini
> >>>
> >>>>./3 Doors Down/Away from the Sun:
> >>>>01-When I'm Gone-3 Doors Down-Away from the Sun.mp3
> >>>>02-Away from the Sun-3 Doors Down-Away from the Sun.mp3
> >>>>03-The Road I'm On-3 Doors Down-Away from the Sun.mp3
> >>>>04-Ticket to Heaven-3 Doors Down-Away from the Sun.mp3
> >>>>05-Running Out of Days-3 Doors Down-Away from the Sun.mp3
> >>>>06-Here Without You-3 Doors Down-Away from the Sun.mp3
> >>>>07-I Feel You-3 Doors Down-Away from the Sun.mp3
> >>>>08-Dangerous Game-3 Doors Down-Away from the Sun.mp3
> >>>>09-Changes-3 Doors Down-Away from the Sun.mp3
> >>>>10-Going Down in Flames-3 Doors Down-Away from the Sun.mp3
> >>>>11-Sarah Yellin'-3 Doors Down-Away from the Sun.mp3
> >>>>AlbumArtSmall.jpg
> >>>>AlbumArt_{C212FF41-147D-402C-BAC5-1284F8B4C802}_Large.jpg
> >>>>AlbumArt_{C212FF41-147D-402C-BAC5-1284F8B4C802}_Small.jpg
> >>>>Folder.jpg
> >>>>Thumbs.db
> >>>>desktop.ini
> >>>>
> >>>>snippet:after
> >>>>
> >>>>ls -R
> >>>>
> >>>>./3_doors_down:
> >>>>away_from_the_sun
> >>>>seventeen_days
> >>>>the_better_life
> >>>>thumbs.db
> >>>>desktop.ini
> >>>>
> >>>>./3_doors_down/away_from_the_sun:
> >>>>01-when_i'm_gone-3_doors_down-away_from_the_sun.mp3
> >>>>02-away_from_the_sun-3_doors_down-away_from_the_sun.mp3
> >>>>03-the_road_i'm_on-3_doors_down-away_from_the_sun.mp3
> >>>>04-ticket_to_heaven-3_doors_down-away_from_the_sun.mp3
> >>>>05-running_out_of_days-3_doors_down-away_from_the_sun.mp3
> >>>>06-here_without_you-3_doors_down-away_from_the_sun.mp3
> >>>>07-i_feel_you-3_doors_down-away_from_the_sun.mp3
> >>>>08-dangerous_game-3_doors_down-away_from_the_sun.mp3
> >>>>09-changes-3_doors_down-away_from_the_sun.mp3
> >>>>10-going_down_in_flames-3_doors_down-away_from_the_sun.mp3
> >>>>11-sarah_yellin'-3_doors_down-away_from_the_sun.mp3
> >>>>albumartsmall.jpg
> >>>>albumart_{c212ff41-147d-402c-bac5-1284f8b4c802}_large.jpg
> >>>>albumart_{c212ff41-147d-402c-bac5-1284f8b4c802}_small.jpg
> >>>>folder.jpg
> >>>>thumbs.db
> >>>>desktop.ini
> >>>>
> >>>>_______________________________________________
> >>>>linux-user mailing list
> >>>>linux-user at egr.msu.edu
> >>>>http://mailman.egr.msu.edu/mailman/listinfo/linux-user
> >>>>
> >>>>
> >>>>
> >>>
> >>
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > linux-user mailing list
> > linux-user at egr.msu.edu
> > http://mailman.egr.msu.edu/mailman/listinfo/linux-user
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.egr.msu.edu/mailman/public/linux-user/attachments/20060408/6222dff2/attachment-0001.html


More information about the linux-user mailing list