Compare two files and find match and print the header of the second file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Compare two files and find match and print the header of the second file
# 1  
Old 05-31-2014
Compare two files and find match and print the header of the second file

Hi,

I have two input files; file1 and file2. I compare them based on matched values in 1 column and print selected columns of the second file (file2). I got the result but the header was not printed. i want the header of file2 to be printed together with the result. Then i did below codes:-

Code:
awk -F "\t" 'FNR==NR{F2[$1]; next}FNR==1{print} ($1 in F2) {print $1 "\t" $6 "\t" $7 "\t" $10 "\t" $12 "\t" $13 "\t" $24}' file1 file2 > matched_output

but it gives me the headers for all columns, whereas i just want the header for the selected columns only. Any help is so appreciated. Thanks
# 2  
Old 05-31-2014
Try:
Code:
awk -F "\t" 'FNR==NR{F2[$1]; next} FNR==1 || $1 in F2 { print $1, $6, $7, $10, $12, $13, $24}' OFS='\t' file1 file2...

This User Gave Thanks to Scrutinizer For This Post:
# 3  
Old 05-31-2014
Maybe?

Code:
awk -F "\t" 'FNR==NR{F2[$1]; next}FNR==1{print $1 "\t" $6 "\t" $7 "\t" $10 "\t" $12 "\t" $13 "\t" $24} ($1 in F2) {print $1 "\t" $6 "\t" $7 "\t" $10 "\t" $12 "\t" $13 "\t" $24}' file1 file2 > matched_output

This User Gave Thanks to Aia For This Post:
# 4  
Old 05-31-2014
Quote:
Originally Posted by Scrutinizer
Try:
Code:
awk -F "\t" 'FNR==NR{F2[$1]; next} FNR==1 || $1 in F2 { print $1, $6, $7, $10, $12, $13, $24}' OFS='\t' file1 file2...

It worked perfectly! Thanks Smilie

---------- Post updated at 02:17 PM ---------- Previous update was at 02:13 PM ----------

Quote:
Originally Posted by Aia
Maybe?

Code:
awk -F "\t" 'FNR==NR{F2[$1]; next}FNR==1{print $1 "\t" $6 "\t" $7 "\t" $10 "\t" $12 "\t" $13 "\t" $24} ($1 in F2) {print $1 "\t" $6 "\t" $7 "\t" $10 "\t" $12 "\t" $13 "\t" $24}' file1 file2 > matched_output

It works great too. thanks Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Find header in a text file and prepend it to all lines until another header is found

I've been struggling with this one for quite a while and cannot seem to find a solution for this find/replace scenario. Perhaps I'm getting rusty. I have a file that contains a number of metrics (exactly 3 fields per line) from a few appliances that are collected in parallel. To identify the... (3 Replies)
Discussion started by: verdepollo
3 Replies

2. UNIX for Beginners Questions & Answers

Compare 1st column from 2 file and if match print line from 1st file and append column 7 from 2nd

hi I have 2 file with more than 10 columns for both 1st file apple,0,0,0...... orange,1,2,3..... mango,2,4,5..... 2nd file apple,2,3,4,5,6,7... orange,2,3,4,5,6,8... watermerlon,2,3,4,5,6,abc... mango,5,6,7,4,6,def.... (1 Reply)
Discussion started by: tententen
1 Replies

3. UNIX for Beginners Questions & Answers

Match Fields between two files, print portions of each file together when matched in ([g]awk)'

I've written an awk script to compare two fields in two different files and then print portions of each file on the same line when matched. It works reasonably well, but every now and again, I notice some errors and cannot seem to figure out what the issue may be and am turning to you for help. ... (2 Replies)
Discussion started by: jvoot
2 Replies

4. UNIX for Beginners Questions & Answers

Match Strings between two files, print portions of each file together when matched ([g]awk)

I have two files and desire to use the strings from $1 of file 1 (file1.txt) as search criteria to find matches in $2 of file 2 (file2.txt). If matches are found I want to output the entire line of file 2 (file2.txt) followed by fields $2-$11 of file 1 (file1.txt). I can find the matches, I cannot... (7 Replies)
Discussion started by: jvoot
7 Replies

5. Shell Programming and Scripting

Find columns in a file based on header and print to new file

Hello, I have to fish out some specific columns from a file based on the header value. I have the list of columns I need in a different file. I thought I could read in the list of headers I need, # file with header names of required columns in required order headers_file=$2 # read contents... (11 Replies)
Discussion started by: LMHmedchem
11 Replies

6. Shell Programming and Scripting

[Solved] awk compare two different columns of two files and print all from both file

Hi, I want to compare two columns from file1 with another two column of file2 and print matched and unmatched column like this File1 1 rs1 abc 3 rs4 xyz 1 rs3 stu File2 1 kkk rs1 AA 10 1 aaa rs2 DD 20 1 ccc ... (2 Replies)
Discussion started by: justinjj
2 Replies

7. Shell Programming and Scripting

awk compare specific columns from 2 files, print new file

Hello. I have two files. FILE1 was extracted from FILE2 and modified thanks to help from this post. Now I need to replace the extracted, modified lines into the original file (FILE2) to produce the FILE3. FILE1 1466 55.27433 14.72050 -2.52E+03 3.00E-01 1.05E+04 2.57E+04 1467 55.27433... (1 Reply)
Discussion started by: jm4smtddd
1 Replies

8. UNIX for Dummies Questions & Answers

Compare 2 files print the lines of file 2 that contain a string from file 1

Hello I am a new unix user, and I have a work related task to compare 2 files and print all of the lines in file 2 that contain a string from file 1 Note: the fields are in different columns in the files. I suspect the is a good use for awk? Thanks for your time & help File 1 123 232 W343... (6 Replies)
Discussion started by: KevinRidley
6 Replies

9. Shell Programming and Scripting

awk to compare flat files and print output to another file

Hello, I am strugling from quite a some time to compare flat files with over 1 million records could anyone please help me. I want to compare two pipe delimited flat files, file1 with file2 and output the unmatched rows from file2 in file3 Sample File1: ... (9 Replies)
Discussion started by: suhaeb
9 Replies

10. Shell Programming and Scripting

compare two columns of different files and print the matching second file..

Hi, I have two tab separated files; file1: S.No ddi fi cu o/l t+ t- 1 0.5 0.6 o 0.1 0.2 2 0.2 0.3 l 0.3 0.4 3 0.5 0.8 l 0.1 0.6 ... (5 Replies)
Discussion started by: vasanth.vadalur
5 Replies
Login or Register to Ask a Question