Matching first 2 columns..


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Matching first 2 columns..
# 1  
Old 01-19-2015
Matching first 2 columns..

Hello All,

I want to make a file which will have primarily lines of file2 but when first 2 fields matches with the file1 it should have those lines of file1..

example is as below..

file1
Code:
a;b;1
c;d
f;e
t;r;5

file2
Code:
b;g
a;b
c;d
v;b
f;e
t;r

I want to make it like

Code:
b;g
a;b;1
c;d
v;b
f;e
t;r;5

I tried several options with join, cut & paste but did not work.. Smilie

BR
Nil
# 2  
Old 01-19-2015
Hello,

Following may help you in same.
Code:
awk -F";" 'FNR==NR{X[$1 FS $2]=$3;next} ($1 FS $2){if(X[$1 FS $2]){print $1 FS $2 FS X[$1 FS $2]} else {print $1 FS $2}}' File1 File2

Output will be as follows.
Code:
b;g
a;b;1
c;d
v;b
f;e
t;r;5

Thanks,
R. Singh

Last edited by RavinderSingh13; 01-19-2015 at 07:45 AM..
This User Gave Thanks to RavinderSingh13 For This Post:
# 3  
Old 01-19-2015
You could also try something like:
Code:
awk '
BEGIN {	FS = OFS = ";"
}
FNR == NR {
	a[$1,$2] = $0
	next
}
($1,$2) in a {
	$0 = a[$1,$2]
}
1' file1 file2

which produces the output you requested.

If you want to try this on a Solaris/SunOS system, change awk to /usr/xpg4/bin/awk, /usr/xpg6/bin/awk, or nawk.
This User Gave Thanks to Don Cragun For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk Matching Columns - Am I missing something?

I am using awk to match columns and output based on those matches. For some reason it is not printing matching columns, am I missing something? Operating system - windows with cygwin. Command that I am using: sed 's/]*,]*/,/g' $tempdir/file1 > $tempdir/file1.$$ && awk -F, 'FNR==NR{f2=$2... (7 Replies)
Discussion started by: dis0wned
7 Replies

2. Shell Programming and Scripting

Joining Two Files Matching Two Columns

Hi All, I am looking to join two files where column 1 of file A matches with column 1 of file B and column 5 of files A matches with column 2 of file B. After joining the files based on above condition, out should contain entire line of file A and column 3, 4 and 5 of file B. Here is sample... (8 Replies)
Discussion started by: angshuman
8 Replies

3. Shell Programming and Scripting

Returning specific columns upon matching

Hi All, Need help in this requirement. I have fileA with one column and fileB with 26 columns. I need to match the value from fileA with fileB, if matches I have to return that value from fileB, and the next value, 5th and 6th values. NOTE- the matching value's position changes in... (7 Replies)
Discussion started by: vamsikrishna928
7 Replies

4. Shell Programming and Scripting

Join two files with matching columns

Hi, I need to join two files together with one common value in a column. I think I can use awk or join or a combination but I can't quite get it. Basically my data looks like this, with the TICKER columns matching up in each file File1 TICKER,column 1, column, 2, column, 3, column 4 ... (6 Replies)
Discussion started by: unkleruckus
6 Replies

5. Shell Programming and Scripting

Help with awk Matching columns from two files

Hello, I have two files as following: #bin chrom chromStart chromEnd name score strand observed 585 chr2 29442 29443 rs4637157 0 + C/T 585 chr2 33011 33012 rs13423995 0 + A/G 585 chr2 34502 34503 rs13386087 0 + ... (2 Replies)
Discussion started by: Homa
2 Replies

6. Shell Programming and Scripting

Clustering data by matching columns

I am stuck with by DNA clustering analysis. I thought this forum will be a great help with data manipulations. Please help me. I have a table with 91 columns. First I want to trim the table to only having rows where the column values are single characters which are A,T,G,C or 0. So any row... (4 Replies)
Discussion started by: geetu
4 Replies

7. UNIX for Dummies Questions & Answers

matching columns

Hello experts, I have this problem, I need to match values based on two files, this is what I have: file1 1.1 1.2 1.3 5.5 1.4 1.5 1.6 file2 1 a 2 B 3 C 4 D 5 z (7 Replies)
Discussion started by: Gery
7 Replies

8. UNIX for Dummies Questions & Answers

Matching corresponding columns in two different files

Hi to all, I have two separated files: FILE1 "V1" "V2" "V3" Mary James Nicole Robert Francisco Sophie Nancy Antony Matt Josephine Louise Rose Mark Simon Charles FILE2 "V1" "V2" "V3"... (2 Replies)
Discussion started by: eleonoral
2 Replies

9. Shell Programming and Scripting

matching columns from two files

Hey, I have two files that have exactly the same format. They are both tab-delimited and contain 12 columns. However the # of rows vary. What I want to do is match columns # 5,6 and 7 between the two files. If they do match exactly (based on numbers) then I want the whole row from file 2 to... (1 Reply)
Discussion started by: phil_heath
1 Replies

10. Shell Programming and Scripting

matching columns with overlapping value ranges

Hi, I want to match and print columns that match. So my file looks like this: h1 20 30 h1 25 27 h2 50 70 h2 90 95 h2 60 80 h2 70 75 h3 130 150 h3 177 190 h4 140 190 h4 300 305 So there are 6 columns. Column 1 and 4 are names. I am able to get the... (2 Replies)
Discussion started by: kylle345
2 Replies
Login or Register to Ask a Question