Help with merge two file based on similar column content


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with merge two file based on similar column content
# 1  
Old 05-19-2011
Help with merge two file based on similar column content

Input file 1:
Code:
A1BG    
A1BG    
A1BG    
A1CF    
A1CF    
BCAS
BCAS
A2LD1   
A2M     
A2M     
HAT
.
.

Input file 2:
Code:
A1BG    All
A1CF    TEMP
A2LD1   STOP
A2M     KEEP

Desired output:
Code:
A1BG    All
A1BG    All
A1BG    All
A1CF    TEMP
A1CF    TEMP
BCAS    Undefined
BCAS    Undefined  
A2LD1   STOP
A2M      KEEP
A2M      KEEP
HAT      Undefined
.
.

The desired output file is based on the comparison between the column 1 in both input file, Input file 1 and Input file 2. If exactly the same content of column 1 in both file, print out the content 2's info but based on the location and number of appearance in Input file 1.
For those different of column 1's content in both file, print out the "Undefined" after the column 1's text in Input file 1.

Thanks.
# 2  
Old 05-19-2011
I changed the order of those two files ie. file 1 is f2 and file 2 is f1 in your case:
Code:
awk 'NR==FNR{_[$1]=$2; next} _[$1] {print $1,_[$1]; next} {print $1,"Undefined"}' f1 f2
A1BG All
A1BG All
A1BG All
A1CF TEMP
A1CF TEMP
BCAS Undefined
BCAS Undefined
A2LD1 STOP
A2M KEEP
A2M KEEP
HAT Undefined

This User Gave Thanks to zaxxon For This Post:
# 3  
Old 05-19-2011
Code:
awk 'NR==FNR{_[$1]=$NF;next}{print $0,(_[$1])?_[$1]:"Undefined"}'  file2 file1

This User Gave Thanks to danmero For This Post:
# 4  
Old 05-19-2011
danmero's answer is a tad more intelligent than mine but what did not work with mine? I am curious to know, just in terms of interesst and politeness, thanks Smilie
This User Gave Thanks to zaxxon For This Post:
# 5  
Old 05-19-2011
Hi zaxxon,

your awk command work nice as well Smilie
Really thanks a lot ^^
Sorry that I forget to confirm with you.
# 6  
Old 05-20-2011
Oki, thanks^^
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

How to merge two tables based on a matched column?

Hi, Please excuse me , i have searched unix forum, i am unable to find what i expect , my query is , i have 2 files of same structure and having 1 similar field/column , i need to merge 2 tables/files based on the one matched field/column (that is field 1), file 1:... (5 Replies)
Discussion started by: karthikram
5 Replies

2. Shell Programming and Scripting

Merge files based on the column value

Hi Friends, I have a file file1.txt 1|ABC|3|jul|dhj 2|NHU|4|kil|eu 3|hjd|34|hfd|43 file2.txt 1||3|KING|dhj 2|NHU||k| 3|hjd|34|hd|43 i want to merge file1.txt file2.txt based on the column null values in file2.txif there are any nulls in column values , (5 Replies)
Discussion started by: i150371485
5 Replies

3. UNIX for Dummies Questions & Answers

Find the average based on similar names in the first column

I have a table, say this: name1 num1 num2 num3 num4 name2 num5 num6 num7 num8 name3 num1 num3 num4 num9 name2 num8 num9 num1 num2 name2 num4 num5 num6 num4 name4 num4 num5 num7 num8 name5 num1 num3 num9 num7 name5 num6 num8 num3 num4 I want a code that will sort my data according... (4 Replies)
Discussion started by: FelipeAd
4 Replies

4. Shell Programming and Scripting

Merge two files with similar column entries

Hi , I have few files which contains user name and data transfer rate in MBs and this data is collected for year and for each month report is saved in 12 different files I have to merge all the files to prepare the final report Files are as below Similarly I have 10 more files ... (5 Replies)
Discussion started by: pratapsingh
5 Replies

5. Shell Programming and Scripting

Help with replace column one content based on reference file

Input file 1 testing 10 20 1 A testing 20 40 1 3 testing 23 232 2 1 testing 10 243 2 . . Reference file 1 final 3 used . . Output file (1 Reply)
Discussion started by: perl_beginner
1 Replies

6. Shell Programming and Scripting

Help with replace column one content based on reference file

Input file 1 testing 10 20 1 A testing 20 40 1 3 testing 23 232 2 1 testing 10 243 2 . . Reference file 1 final 3 used . . Output file (2 Replies)
Discussion started by: perl_beginner
2 Replies

7. Shell Programming and Scripting

Joining multiple files based on one column with different and similar values (shell or perl)

Hi, I have nine files looking similar to file1 & file2 below. File1: 1 ABCA1 1 ABCC8 1 ABR:N 1 ACACB 1 ACAP2 1 ACOT1 1 ACSBG 1 ACTR1 1 ACTRT 1 ADAMT 1 AEN:N 1 AKAP1File2: 1 A4GAL 1 ACTBL 1 ACTL7 (4 Replies)
Discussion started by: seqbiologist
4 Replies

8. Shell Programming and Scripting

merge two two txt files into one file based on one column

Hi, I have file1.txt and file2.txt and would like to create file3.txt based on one column in UNIX Eg: file1.txt 17328756,0000786623.pdf,0000786623 20115537,0000793892.pdf,0000793892 file2.txt 12521_74_4.zip,0000786623.pdf 12521_15_5.zip,0000793892.pdf Desired Output ... (5 Replies)
Discussion started by: techmoris
5 Replies

9. Shell Programming and Scripting

Merge Two Files based on First column

Hi, I need to join two files based on first column of both files.If first column of first file matches with the first column of second file, then the lines should be merged together and go for next line to check. It is something like: File one: 110001 abc efd 110002 fgh dfg 110003 ... (10 Replies)
Discussion started by: apjneeraj
10 Replies

10. Shell Programming and Scripting

merge rows based on a common column

Hi guys, Please guide me if you have a solution to this problem. I have tried paste -s but it's not giving the desired output. I have a file with the following content- A123 box1 B345 bat2 C431 my_id A123 service C431 box1 A123 my_id I need two different outputs- OUTPUT1 A123... (6 Replies)
Discussion started by: smriti_shridhar
6 Replies
Login or Register to Ask a Question