shell scripting Re: Converting mp3 to wav

Sriram Thaiyar plug-discuss@lists.plug.phoenix.az.us
Thu, 31 Jan 2002 10:36:16 -0700


ok programming is hard enough as it is.  but to remember obscure syntax and
other such stuff is really horrible.  why go through all the pain just
because bourne shell programming is the common denominator - (i think that
not forcing the user to upgrade unnecessarily is a Good Thing.  but taken
to an extreme it can really be harmful to everyone...) for example, what
would you prefer, writing 1500 line shell script and actually maintaining
it for say 5 years or writing a 800 line (equivalent) python program and
not worrying about simple things such as, if the user has spaces or other
illegal character in their file names because python takes care of it for
you (i haven't programmed with python too much but i have used scsh and it
takes care of all theses thing for you).  we have just seen how much
problem even a small shell script can give.  so why stick with it?  why not
move on to something better?

this is what i mean when i say that the system take care of things for you:

(directory-files DIR) in scsh lists all the file in DIR; doesn't matter if
they have spaces or other cruft in them...

  > for i in *.mp3
  > do
  >       mp32wav $i ${i%mp3}wav
  >       # use a hash, #, to change something at the front
  > done

(both are untested)

In Python (http://www.python.org/):

import os, glob
for file in glob ("*.mp3"):
   newname = file[:-4] + ".wav"
   os.system ("mp32wav %s %s" % (file, newname))

In Scsh (the Scheme Shell http://www.scsh.net/)

(map (lambda (old)
       (let ((new (string-append (file-name-sans-extension file)
                                  ".wav")))
         (run (mp32wav ,old ,new))))
     (glob "*.mp3"))