merlyn@iwarp.intel.com (Randal Schwartz) (08/24/89)
In article <111@crdos1.crd.ge.COM>, davidsen@crdos1 (Wm E Davidsen Jr) writes: | | In ksh you can do it using the uppercase attribute (I realize we don't | all use ksh yet). | | $ typeset -u ucase | $ for file in *[a-z]* | > do ucase=${file} | > if [ ! -f $ucase ] | > then mv ${file} ${ucase} | > else echo "Can't move ${file}" | > fi | >done | | ksh takes most of the pain out of it, although you may find typing in the | C program easier. If you have ksh you can put this in as a macro. OK, here we go again. Presuming the task is to take all of the filenames in the current directory that contain at least one uppercase character and make the names lowercase: ################################################## cut here #!/usr/bin/perl for $uc (<*>) { ($lc = $uc) =~ y/A-Z/a-z/; next if ($lc eq $uc) || -e $lc; print "renaming $uc to $lc..."; (print "done\n"),next if rename($uc, $lc); print "failed: $!\n"; } ################################################## cut here Enjoy. -- /== Randal L. Schwartz, Stonehenge Consulting Services (503)777-0095 ====\ | on contract to Intel, Hillsboro, Oregon, USA | | merlyn@iwarp.intel.com ...!uunet!iwarp.intel.com!merlyn | \== Cute Quote: "Welcome to Oregon... Home of the California Raisins!" ==/