How to match two fields


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to match two fields
# 1  
Old 04-12-2008
How to match two fields

Hello Every one,

I am in need of all ur's help.

Let me straight explain the problem ..


I have a file "player" which contains three players with their NAME , RUN and ECONOMY rate.

----------
Name Run Economy
David 23 8
stuart 12 12
string 33 4
-----------

Now i want to find best player who has highest run but lowest economy rate.

Means according to this file best player shud be "string".

I did try writing script but that does not work when i change the data .

What is did is :

first i took highest run and lowest economy in a variables (i and j).

i=`cat player | awk 'BEGIN { FS= " " } {print $2}' | grep -v Run | sort -nr | head -1`

---------
bash-3.1$ echo $i
33
------

j=`cat player | awk 'BEGIN { FS= " " } {print $3}' | grep -v Economy | sort -n | head -1`

---------
bash-3.1$ echo $j
3
bash-3.1$
----------

Now the problem is how to match two fields that am not sure.

Plzzz help me .. Smilie ( i tried fgrep but it does not work ).

Please help me out with this.

Thanks,
# 2  
Old 04-12-2008
And what to do if someone has the highest run and someone else the lowest economy?

Regards
# 3  
Old 04-12-2008
Dear Franklin52,

Thank you for answering me.

Can we write a script if we do not consider that ? If yes please let me know.

Thanks,
# 4  
Old 04-12-2008
To find the player with the highest run you can do something like:

Code:
awk '
max<$2{max=$2;s=$0}
END{print "Max = " s}' player

Now it's your task to find the player with the lowest economy rate.

Regards
# 5  
Old 04-13-2008
Dear Franklin52,

Yea sure i will give it a try. Smilie

Thank u very much for ur reply.

Thanks,
Smilie
# 6  
Old 04-13-2008
Quote:
Originally Posted by Prahlad
Means according to this file best player shud be "string".
What about this solution?
Code:
awk 'max<$2-$3{max=$2-$3;s=$0}END{print s}'

# 7  
Old 04-26-2008
----------
awk 'max<$2-$3{max=$2-$3;s=$0}END{print s}'
-----------


Hello danmero,

Yes , it works great. Smilie

Could u plz share the logic with me ?

Thanks,
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Match output fields agains two patterns

I need to print field and the next one if field matches 'patternA' and also print 'patternB' fields. echo "some output" | awk '{for(i=1;i<=NF;i++){if($i ~ /patternA/){print $i, $(i+1)}elif($i ~ /patternB/){print $i}}}' This code returnes me 'syntax error'. Pls advise how to do properly. (2 Replies)
Discussion started by: urello
2 Replies

2. UNIX for Beginners Questions & Answers

awk match two fields in two files

Hi, I have two TEST files t.xyz and a.xyz which have three columns each. a.xyz have more rows than t.xyz. I will like to output rows at which $1 and $2 of t.xyz match $1 and $2 of a.xyz. Total number of output rows should be equal to that of t.xyz. It works fine, but when I apply it to large... (6 Replies)
Discussion started by: geomarine
6 Replies

3. Shell Programming and Scripting

awk to print match or non-match and select fields/patterns for non-matches

In the awk below I am trying to output those lines that Match between file1 and file2, those Missing in file1, and those missing in file2. Using each $1,$2,$4,$5 value as a key to match on, that is if those 4 fields are found in both files the match, but if those 4 fields are not found then missing... (0 Replies)
Discussion started by: cmccabe
0 Replies

4. Shell Programming and Scripting

awk to calculate fields only if match is found

Trying to combine the matching $5 values between file1 and file2. If a match is found then the last $6 value in the match and the sum of $7 are outputted to a new file. The awk below I hope is a good start. Thank you :). file1 chr12 9221325 9221448 chr12:9221325-9221448 A2M 1... (5 Replies)
Discussion started by: cmccabe
5 Replies

5. Shell Programming and Scripting

Pattern Match and Rearrange the Fields in UNIX

For an Output like below Input : <Subject A="I" B="1039502" C="2015-06-30" D="010101010101"> Output : <Subject D="010101010101" B="1039502" C="2015-06-30" A="I"> I have been using something like below but not getting the desired output : awk -F ' ' '/Subject/ BEGIN{OFS=" ";}... (19 Replies)
Discussion started by: arunkesi
19 Replies

6. Shell Programming and Scripting

Match and subtract two fields

Not sure quite how to do this, but I am trying to use $1 of LCH.txt (exact match) to look for a match in $1 of genes.txt. If a match is found then in a new file match.txt $1 $2 ($4-$3) are copied. Example, the first record in LCH is PPT1 and that matches row 713, column 1 of genes.txt. ... (2 Replies)
Discussion started by: cmccabe
2 Replies

7. Shell Programming and Scripting

Add fields in different files only if some fields between them match

Hi everybody (first time posting here) I have a file1 that looks like > 1,101,0.1,0.1 1,26,0.1,0.1 1,3,0.1,0.1 1,97,0.5,0.5 1,98,8.1,0.218919 1,99,6.2,0.248 2,101,0.1,0.1 2,24,3.1,0.147619 2,25,23.5,0.559524 2,26,34,0.723404with 762 lines.. I have another 'similar' file2 > ... (10 Replies)
Discussion started by: murpholinox
10 Replies

8. Shell Programming and Scripting

how to match fields from different files in PERL

Howdy! I have multiple files with tab-separated data: File1_filtered.txt gnl|Amel_4.0|Group3.29 1 G R 42 42 60 15 ,.AAA.aa,aa.A.. hh00/f//hD/h/hh gnl|Amel_4.0|Group3.29 2 C Y 36 36 60 5 T.,T, LggJh gnl|Amel_4.0|Group3.29 3 A R 27 27 60 9 Gg,,.gg., B6hcc22_c File2_filtered.txt ... (3 Replies)
Discussion started by: sramirez
3 Replies

9. UNIX for Dummies Questions & Answers

Match values from 2 files and append certain fields

Hi, I need help on appending certain field in my file1.txt based on matched patterns in file2.txt using awk or sed. The blue color need to match with one of the data in field $2 in file2.txt. If match, BEGIN and FINISHED value in red will have a new value from field $3 and $4 accordingly. ... (1 Reply)
Discussion started by: redse171
1 Replies

10. Shell Programming and Scripting

Match two files and divide fields

I have two files that have the date field in common. I request your help with some script that divide each field value from file1 by the correspond field value of the file2 only when the field date is equal in both files. Thanks in advance ! This is a sample of the files file 1 12/16/2010,... (2 Replies)
Discussion started by: csierra
2 Replies
Login or Register to Ask a Question