Perl can do this but if you're just talking dos2unix and equally simple commands, you can go the shell route on this one...
$> for file in (foo|bar|foobar)/*/*.txt; do dos2unix $file; done Add more commands if you like. On Sep 20, 2011, at 4:42 PM, Russell L. Harris wrote: > Running Linux, I need to execute various system utilities (including > "dos2unix") on multiple files in multiple directories. The file > structure is similar to the following: > > foo/jan/01.txt > foo/jan/02.txt > foo/jan/03.txt > ... > foo/feb/01.txt > foo/feb/02.txt > foo/feb/03.txt > ... > foo/dec/01.txt > foo/dec/02.txt > foo/dec/03.txt > ... > bar/jan/01.txt > bar/jan/02.txt > bar/jan/03.txt > ... > bar/feb/01.txt > bar/feb/02.txt > bar/feb/03.txt > ... > bar/dec/01.txt > bar/dec/02.txt > bar/dec/03.txt > ... > foobar/jan/01.txt > foobar/jan/02.txt > foobar/jan/03.txt > ... > foobar/feb/01.txt > foobar/feb/02.txt > foobar/feb/03.txt > ... > foobar/dec/01.txt > foobar/dec/02.txt > foobar/dec/03.txt > ... > > Regrettably, not all Linux utilities have a recursive option, and I do > not wish to take the time to re-write and debug functions which > already are available as a standard utilities. > > A very tedious approach would be to "cd" to "foo/jan/" and run > "dos2unix *.txt", then "cd" to "foo/feb/" and run "dos2unix *.txt", > etc. > > I know that a Perl script can automate the process. I just discovered > the Perl "File::Find" module and the Perl "system" function, and now I > am perusing the O'Reilly Perl books, trying to understand how to > combine the two into a script. > > Afterward, I need to do involved search-and-replace processing on > these files which cannot be handled with system utilities. I > previously have used Perl scripts for similar tasks, but never on a > multi-level directory. > > So, learning how to run system utilities with "File::Find" appears to > me to be the logical first step. > > RLH > _______________________________________________ > Houston mailing list > [email protected] > http://mail.pm.org/mailman/listinfo/houston > Website: http://houston.pm.org/ Todd Rinaldo [email protected] ---------------------------------------------------- cPanel Conference 2011- Automation Bootcamp Register at bootcamp.cpanel.net Discount Code: learn4free (FREE!) _______________________________________________ Houston mailing list [email protected] http://mail.pm.org/mailman/listinfo/houston Website: http://houston.pm.org/
