Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: How can I run an folder full of text files through a perl script?

by graff (Chancellor)
on Dec 08, 2012 at 17:31 UTC ( #1007907=note: print w/ replies, xml ) Need Help??


in reply to How can I run an folder full of text files through a perl script?

This is a very common type of task (applying some process to each item in a list of files), and it can actually be generalized to a broader set of tasks (applying some shell command-line operation to each item in a list of strings, and in many cases, needing a modified version of the input string to serve as an "output string" on each iteration). In an average work week, I might need to do something like this many times a day.

So, many years ago, I wrote shloop -- execute shell command on a list, and I've been using it every since. In your case, you'd do something like this, which assumes that your system has the unix-style "ls" utility to list the contents of a directory (there's an 'ls.exe' available for MS-Windows systems), and that your "small perl script" simply takes the name of a text file as the sole command-line argument:

ls *.txt | shloop -e small_perl_script
Quite often, the situation involves creating a modified file from a source file, either by providing input and output arguments for a process, or by redirecting process output to a new file:
# supplying input and output args: "cmd inp.arg out.arg" ls *.txt | shloop -e small_perl_script -s '.txt$:.new.txt' # or, using redirection: "cmd inp.arg > out.arg" ls *.txt | shloop -e small_perl_script -r -s '.txt$:.new.txt'
shloop has grown over the years to include lots of bells and whistles, but one of the early things I wanted to be sure of was that it would work on MS-Windows shells as well as unix/linux ones. (Getting the Windows version of the linux "bash" shell is always an improvement over a "native" MS-DOS style shell, but shloop should work with cmd.exe, or command.exe or whatever you have.)

HTH.


Comment on Re: How can I run an folder full of text files through a perl script?
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1007907]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (5)
As of 2015-07-04 21:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (60 votes), past polls