Run script on multiple files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Run script on multiple files
# 15  
Old 01-13-2014
Count up an index (e.g. CNT) for every new $2 occurring, and then, in the END section, don't use (f in K) but (i=1; i<=CNT; i++).
Or, use NR==1 to print the header.
# 16  
Old 01-14-2014
Counter assignment

Rudi:

When you say "count up an index" I am not sure what is meant. I am only familar with simple counter scripts. Do you mean the following?

Code:
CNT=0
{count[$2]++; keyword[$2] = $1}
END {
for (i=1;i<=CNT;i++)


or would it be CNT=$2? Pardon my ignorance.
# 17  
Old 01-14-2014
No, sth like (untested)
Code:
{if !($2 in count) CNT++; count[$2]++; keyword[$2] = $1} 
END { for (i=1;i<=CNT;i++)

so, for every $2 not yet found in the array, CNT will be incremented and can then be used in the END section.
# 18  
Old 01-15-2014
Solved, but simple!

This was so simple, it irks me! I took a look at the output, and as I checked carefully, the files were being processed in reverse order!! All I did then was run the sort command with the script and it was all solved. Can some awk guru tell me why awk processed files in reverse order?

Here is what I did:
Code:
for f in F*; do gawk -f script_0113b $f |sort ;done

This is the file:

Code:
{count[$2]++; keyword[$2] = $1}
END {
for (k in count)
{if (count[k] == 2) keyword[k] = "rearranging"
if (count[k] == 3) keyword[k] = "deleting"
if (count[k] > 3)  print k ": Volumes has more than 3 repeats" > "/dev/stderr"
else print keyword[k] " " k
}
}

If I run the code without sort, the files are jumbled up and are actually in reverse order so they aren't correct for what I need to do.


It appears also that the following command does not work the same as sort -r. Does anyone know why?

Code:
awk '{a[i++]=$0} END {for (j=i-1; j>=0;) print a[j--] }'


Last edited by newbie2010; 01-15-2014 at 01:50 PM..
# 19  
Old 01-15-2014
The files are not processed in reversed order, but for k in count produces the array elements in an undetermined order..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. Shell Programming and Scripting

Bash Scipting (New); Run multiple greps > multiple files

Hi everyone, I'm new to the forums, as you can probably tell... I'm also pretty new to scripting and writing any type of code. I needed to know exactly how I can grep for multiple strings, in files located in one directory, but I need each string to output to a separate file. So I'd... (19 Replies)
Discussion started by: LDHB2012
19 Replies

6. Shell Programming and Scripting

Run perl script on files in multiple directories

Hi, I want to run a Perl script on multiple files, with same name ("Data.txt") but in different directories (eg : 2010_06_09_A/Data.txt, 2010_06_09_B/Data.txt). I know how to run this perl script on files in the same directory like: for $i in *.txt do perl myscript.pl $i > $i.new... (8 Replies)
Discussion started by: ad23
8 Replies

7. Shell Programming and Scripting

How to run multiple awk files

I'm trying some thing like this. But not working It worked for bash files Now I want some thing like that along with multiple input files by redirecting their outputs as inputs of next command like below Could you guyz p0lz help me on this #!/usr/bin/awk -f BEGIN { } script1a.awk... (2 Replies)
Discussion started by: repinementer
2 Replies

8. 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

9. 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

10. UNIX for Dummies Questions & Answers

when I try to run rm on multiple files I have problem to delete files with space

Hello when I try to run rm on multiple files I have problem to delete files with space. I have this command : find . -name "*.cmd" | xargs \rm -f it doing the work fine but when it comes across files with spaces like : "my foo file.cmd" it refuse to delete it why? (1 Reply)
Discussion started by: umen
1 Replies
Login or Register to Ask a Question