AWK: Comparing two columns from two different files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting AWK: Comparing two columns from two different files
# 1  
Old 09-23-2010
AWK: Comparing two columns from two different files

Hi - I have two files as follows:

File 1:
Code:
chr5    118464905    118465027    ENST00000514151    utr5    0    +
chr5    118464903    118465118    ENST00000504031    utr5    0    +
chr5    118468826    118469180    ENST00000504031    utr5    0    +
chr5    118469920    118470084    ENST00000512281    utr5    0    +
chr5    118479535    118479625    ENST00000512281    utr5    0    +
chr5    118480230    118480333    ENST00000512281    utr5    0    +

File 2:
Code:
ENST00000512281    Xkr4
ENST00000504031    Nku23
ENST00000776348    KKM2


I want to compare the field 1 of file 2 to field 4 of file1 and add the corresponding field 2 of file 2 to the line on file 1.

Example output
Code:
chr5    118464903    118465118    ENST00000504031    utr5    0    +   Nku23
chr5    118468826    118469180    ENST00000504031    utr5    0    +   Nku23
chr5    118469920    118470084    ENST00000512281    utr5    0    +   Xkr4
chr5    118479535    118479625    ENST00000512281    utr5    0    +   Xkr4
chr5    118480230    118480333    ENST00000512281    utr5    0    +   Xkr4

I tried using NR==FNR based code, but did not work.

THanks a lot in advance

Last edited by Scott; 10-02-2010 at 10:45 AM.. Reason: Please use code tags
# 2  
Old 09-23-2010
Code:
awk 'NR==FNR{a[$1]=$2;next}a[$4]{print $0"\t"a[$4]}' file2 file1

# 3  
Old 09-23-2010
Code:
awk 'NR==FNR{a[$1]=$2;next}a[$4]{$0=$0"\t"a[$4]}1' file2 file1

danmero - You are god!

Last edited by Scott; 10-02-2010 at 10:45 AM..
# 4  
Old 09-23-2010
Be welcome Smilie but please learn to use [code] tags when you post code or data sample.

PS. I update my one-liner to fit your required output.
# 5  
Old 09-23-2010
Quote:
Originally Posted by danmero
Be welcome Smilie but please learn to use [code] tags when you post code or data sample.
Sure - I will, THanks again
# 6  
Old 09-23-2010
Code:
while read key value
do
  sed -i "/${key}/ s/$/ ${value}/" file1
done < file2

awk 'NF==8' file1

# 7  
Old 09-23-2010
Code:
nawk 'NR==FNR { 
_[$1]=$2 
}
NR!=FNR {
  if(_[$4] != "")
    print $0"  "_[$4]
}' f2 f1

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Comparing multiple columns using awk

Hello All; I have two files with below conditions: 1. Entries in file A is missing in file B (primary is field 1) 2. Entries in file B is missing in file A (primary is field 1) 3. Field 1 is present in both files but Field 2 is different. Example Content: File A ... (4 Replies)
Discussion started by: mystition
4 Replies

2. Shell Programming and Scripting

awk arrays comparing multiple columns across two files.

Hi, I'm trying to use awk arrays to compare values across two files based on multiple columns. I've attempted to load file 2 into an array and compare with values in file 1, but success has been absent. If anyone has any suggestions (and I'm not even sure if my script so far is on the right lines)... (4 Replies)
Discussion started by: hubleo
4 Replies

3. Shell Programming and Scripting

Comparing two columns from two different files

Hi, I have a single-column file1 having records like: 00AB01/11 43TG22/00 78RC09/34 ...... ...... and a second file , file 2 having two columns like 78RC09/34 1 45FD11/11 2 00AB01/11 3 43TG22/00 4 ...... ...... (8 Replies)
Discussion started by: amarn
8 Replies

4. Shell Programming and Scripting

comparing two columns from two different files

Hello, I have two files as 1.txt and 2.txt with number as columns. 1.txt 0 53.7988 1 -30.0859 2 20.1632 3 14.2135 4 14.6366 5 -37.6258 . . . 31608 -8.57333 31609 -2.58554 31610 -24.2857 2.txt (1 Reply)
Discussion started by: AKD
1 Replies

5. UNIX for Dummies Questions & Answers

Comparing columns in two files

Hi, I have two files. File1.txt has 2 columns and looks like: 458739 122345 4456 122657 34200 122600 File2.txt has many columns with column 1 the same as column2 of File1.txt, but with lot more rows: 122786 abcdefg user1@email 122778 uuhjeufh user2@email... (1 Reply)
Discussion started by: ursaan
1 Replies

6. UNIX for Dummies Questions & Answers

Comparing 2 columns from 2 files

Hi, I have two files with the same number of columns. Basically I want to print the 2 columns that match between the two files. File1 looks like this: dr12 12 6 abn dr14 12 7 abn File2 looks something like this: dr12 12 8 abn dr12 14 7 abn So basically if the first... (1 Reply)
Discussion started by: kylle345
1 Replies

7. Shell Programming and Scripting

comparing 2 columns from 2 files

Hey, I have 2 files that have a name and then a number: File 1: dog 21 dog 24 cat 33 cat 27 dog 76 cat 65 File 2: dog 109 dog 248 cat 323 cat 207 cat 66 (2 Replies)
Discussion started by: dcfargo
2 Replies

8. Shell Programming and Scripting

comparing the columns in two files

I have two files file1 and file 2 both are having multiple coloumns.i want to select only two columns. i used following code to get the desired columns,with ',' as delimiter cut -d ',' -f 1,2 file1 | sort > file1.new cut -d ',' -f 1,2 file2 | sort > file2.new I want to get the coloums... (1 Reply)
Discussion started by: bab123
1 Replies

9. Shell Programming and Scripting

Comparing Columns of two FIles

Dear all, I have two files in UNIX File1 and File2 as below: File1: 1,1234,.,67.897,,0 1,4134,.,87.97,,4 0,1564,.,97.8,,1 File2: 2,8798,.,67.897,,0 2,8879,.,77.97,,4 0,1564,.,97.8,,1 I want to do the following: (1) Make sure that both the files have equal number of columns and if... (4 Replies)
Discussion started by: ggopal
4 Replies

10. UNIX for Advanced & Expert Users

Comparing Columns of two FIles

Dear all, I have two files in UNIX File1 and File2 as below: File1: 1,1234,.,67.897,,0 1,4134,.,87.97,,4 0,1564,.,97.8,,1 File2: 2,8798,.,67.897,,0 2,8879,.,77.97,,4 0,1564,.,97.8,,1 I want to do the following: (1) Make sure that both the files have equal number of columns and if... (1 Reply)
Discussion started by: ggopal
1 Replies
Login or Register to Ask a Question