Sponsored Content
Top Forums Shell Programming and Scripting Run perl script on files in multiple directories Post 302432347 by a_programmer on Thursday 24th of June 2010 08:46:21 PM
Old 06-24-2010
Simply pass full/relative paths with directory name to your perl script. (This is assuming your perl script does not expect the file to be in the current working directory).

Code:
## Assuming the following directory structure:
## /abc/xyz/2010_06_09_A
## /abc/xyz/2010_06_09_B
## ...
## /abc/xyz/2010_06_09_Z

cd /abc/xyz
for i in */Data.txt
do
  perl myscript.pl $i > $i.new
done

If your perl script needs the file to be current working directory:

Code:
cd /abc/xyz
for i in */Data.txt
do
  dir=${i%/*}
  file=${i##*/}
  cd "$dir"
  perl myscript.pl ${file} > $i.new
  cd -
done


Last edited by a_programmer; 06-25-2010 at 12:13 PM.. Reason: typo correction: changed for $i to for i
This User Gave Thanks to a_programmer For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

1 script or multiple scripts?? - check files, run jobs

Question for anyone that might be able to help: My objective is to eheck if a file (a source file) exists in a directory. If it does then, I'd like to call an application (Informatica ETL file...not necessary to know) to run a program which extracts data and loads it into multiple targets. ... (6 Replies)
Discussion started by: jnanasakti
6 Replies

2. UNIX for Dummies Questions & Answers

Foreach loop to run a perl script on multiple files

Hi, I have thousands of files in a directory that have the following 2 formats: 289620178.aln 289620179.aln 289620180.aln 289620183.aln 289620184.aln 289620185.aln 289620186.aln 289620187.aln 289620188.aln 289620189.aln 289620190.aln 289620192.aln.... and: alnCDS_1.fasta (1 Reply)
Discussion started by: greptastic
1 Replies

3. Shell Programming and Scripting

perl script to check if empty files are created and delete them and run a shell script

I have a local linux machine in which the files are dumped by a remote ubuntu server. If the process in remote server has any problem then empty files are created in local machine. Is there any way using perl script to check if the empty files are being created and delete them and then run a shell... (2 Replies)
Discussion started by: hussa1n
2 Replies

4. Shell Programming and Scripting

Run perl script with multiple file arguments

Hello everyone, I have two types of files in a directory: *.txt *.info I have a perl script that uses these two files as arguments, and produces a result file: perl myScript.pl abc.txt abc.xml How can I run this script (in a "for" loop , looping through both types of files)... (4 Replies)
Discussion started by: ad23
4 Replies

5. Shell Programming and Scripting

How to run perl script on multiple files of two directories?

Hi I have 100 files under file A labled 1.txt 2.txt.....100.txt(made up name) I have 1 files under file B labled name.txt How can i run the same perl script on 100 files and file name.txt I want to run perl script.pl A/1.txt B/name.txt perl script.pl A/2.txt B/name.txt ....... perl... (3 Replies)
Discussion started by: grace_shen
3 Replies

6. UNIX for Dummies Questions & Answers

Run one script on multiple files and print out multiple files.

How can I run the following command on multiple files and print out the corresponding multiple files. perl script.pl genome.gff 1.txt > 1.gff However, there are multiples files of 1.txt, from 1----100.txt Thank you so much. No duplicate posting! Continue here. (0 Replies)
Discussion started by: grace_shen
0 Replies

7. Shell Programming and Scripting

Run one script on multiple files and print out multiple files.

How can I Run one script on multiple files and print out multiple files. FOR EXAMPLE i want to run script.pl on 100 files named 1.txt ....100.txt under same directory and print out corresponding file 1.gff ....100.gff.THANKS (4 Replies)
Discussion started by: grace_shen
4 Replies

8. Shell Programming and Scripting

Run script on multiple files

I have a script that I need to run on one file at a time. Unfortunately using for i in F* or cat F* is not possible. When I run the script using that, it jumbles the files and they are out of order. Here is the script: gawk '{count++; keyword = $1} END { for (k in count) {if (count == 2)... (18 Replies)
Discussion started by: newbie2010
18 Replies

9. Shell Programming and Scripting

Perl: script to work with files with the same name in different directories

Hi All, I would like to use a Perl (not Bash) script to work with multiple files of the same name in different directories (all in the same parent directory). I tried to create a loop to do so, but it isn't working. My code so far: while (defined(my $file = glob("./*/filename.txt")) or... (1 Reply)
Discussion started by: elgo4
1 Replies

10. UNIX for Dummies Questions & Answers

Run script on multiple files

Hi Guys, I've been having a look around to try and understand how i can do the below however havent come across anything that will work. Basically I have a parser script that I need to run across all files in a certain directory, I can do this one my by one on comand line however I... (1 Reply)
Discussion started by: mutley2202
1 Replies
FS_WHEREIS(1)						       AFS Command Reference						     FS_WHEREIS(1)

NAME
fs_whereis - Reports each file server housing a file or directory SYNOPSIS
fs whereis [-path <dir/file path>+] [-help] fs whe [-p <dir/file path>+] [-h] DESCRIPTION
The fs whereis command returns the name of each file server machine that houses the volume containing each directory or file named by the -path argument. OPTIONS
-path <dir/file path>+ Names each AFS file or directory for which to return the host file server machine. Partial pathnames are interpreted relative to the current working directory, which is also the default value if this argument is omitted. -help Prints the online help for this command. All other valid options are ignored. OUTPUT
The output includes a line for each specified directory or file. It names the file server machine on which the volume that houses the specified directory or file resides. A list of multiple machines indicates that the directory or file is in a replicated volume. Machine names usually have a suffix indicating their cell membership. If the cell is not clear, use the fs whichcell command to display the cell in which the directory or file resides. To display the cell membership of the local machine, use the fs wscell command. EXAMPLES
The following example indicates that volume housing the directory /afs/abc.com resides is replicated on both "fs1.abc.com" and "fs3.abc.com": % fs whereis -path /afs/abc.com File /afs/abc.com is on hosts fs1.abc.com fs3.abc.com PRIVILEGE REQUIRED
None SEE ALSO
fs_whichcell(1), fs_wscell(1) COPYRIGHT
IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved. This documentation is covered by the IBM Public License Version 1.0. It was converted from HTML to POD by software written by Chas Williams and Russ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell. OpenAFS 2012-03-26 FS_WHEREIS(1)
All times are GMT -4. The time now is 05:27 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy