How to compare 2 files column's more than 5?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to compare 2 files column's more than 5?
# 15  
Old 03-30-2013
Sure Sir, whether I will post as a new thread or here only I will continue ?
# 16  
Old 03-30-2013
I'm happy to follow this thread.

And, no "Sir", please. I'm not a boss nor a teacher, just a colleague.
# 17  
Old 03-30-2013
I don't think we need to start over. We now have a specification of your requirements that is relatively clear. With the minor modifications to the script I provided shown below, I think you'll get what you want:
Code:
awk '
BEGIN { # Set up translation table for fields to match:
        # fc[file1_field] = file2_field]
        fc[1] = 1
        fc[2] = 4
        fc[3] = 5
        fc[4] = 6
        fc[5] = 7
        fc[6] = 8
        fc[7] = 9
        fc[8] = 18
        fcc = 8 # # of entries in fc[]
}
FNR == NR {
        c = NR  # # of lines in 1st file.
        for(i = 1; i <= 9; i++)
                a[c, i] = $i
        next
}
{       p = 0   # # of lines matched.
        for(i = 1; i <= c; i++) {
                m = 5   # # of fields that must match.
                for(j = 1; j <= fcc && m; j++)
                        if(a[i, j] == $fc[j]) m--
                if(m) continue
                # We matched enough fields; print this as a matched line.
                print $0, a[i, 9]
                p++
        }
        # If we did not find any matching lines, print the not found message.
        if(p == 0) print $0, "Not in file"
}' OFS="\t" file1.txt file2.txt

As always, if you are using a Solaris/SunOS system, use /usr/xpg4/bin/awk or nawk instead of awk.

And note that I changed the file not found message (getting rid of the leading and trailing spaces) from your latest specification. I assume that is OK (even though with your new specification all lines in file2.txt have a match in file1.txt).

NOTE: This script will look for a match on every line in file1.txt and print every match found (it does not quit looking when a matching line is found). With the file1.txt and file2.txt you attached in an earlier posting in this thread, each line in file2.txt matches exactly one line in file1.txt.

Last edited by Don Cragun; 03-30-2013 at 10:44 AM.. Reason: Added NOTE
This User Gave Thanks to Don Cragun For This Post:
# 18  
Old 03-30-2013
Yes . This is giving absolutely expected result.

I agree that earlier code was resulting wrong,it's because I had given wrong specification and I was actually wrong, I think this is my great time, I got lot to learn and understand from you and RudyC, and I promise same mistake will not happen in future

Again I hope our relationship is undamaged from my actions and that I can continue to learn and grow under your guidance

kindly accept my most genuine apologies in this regard.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need awk or Shell script to compare Column-1 of two different CSV files and print if column-1 matche

Example: I have files in below format file 1: zxc,133,joe@example.com cst,222,xyz@example1.com File 2 Contains: hxd hcd jws zxc cst File 1 has 50000 lines and file 2 has around 30000 lines : Expected Output has to be : hxd hcd jws (5 Replies)
Discussion started by: TestPractice
5 Replies

2. Shell Programming and Scripting

Compare 3rd column in 2 files

I have the following 2 files. File 1 08FB,000192602673,10000000c9a6b240 0121,000192602673,20000025b550101f 0121,000192602673,20000025b550100f 08FA,000192602673,10000000c9a6b240 File 2 18F2,000195702363,10000000c9a6b240 18F3,000195702363,10000000c9a6b240... (2 Replies)
Discussion started by: kieranfoley
2 Replies

3. Shell Programming and Scripting

Compare two files based on column

Hi, I have two files roughly 1200 fields in length for each row, sorted on the 2nd field. I need to compare based on that 2nd column between file1 and file2 and print lines that exist in both files into separate files (I can't guarantee that every line in file1 is in file2). Example: File1: ... (1 Reply)
Discussion started by: origon
1 Replies

4. Shell Programming and Scripting

Compare first column of 2 files and replace

Hi All, I have 2 files in the following format : File 1 S00999999|BHANU|TEST|007 JOHN DOE APT 999||VENGA HIGHWAY|MA|09566|SCO DUAL|20140201|20140331|20140401|20140630|20140327| S00888888|BU|TES|009 JOHN DOE APT 909||SENGA HIGHWAY|MA|08566|SCO... (1 Reply)
Discussion started by: nua7
1 Replies

5. Shell Programming and Scripting

Compare 1 column in 2 files

Hi all, I have two two-column tab-separated files with the following input: inputA dog A dog B cat A.... inputB dog C mouse A output dog I need to compare the 1st column of each file and output those shared items. What is the best unix solution for that? (5 Replies)
Discussion started by: owwow14
5 Replies

6. Shell Programming and Scripting

Compare two files with different column entries..:-(

Dear All, I would appreciate any help..At the moment, my work is stuck cos of my inability to resolve this issue. Which is following: I have two files with the arrngment like this file-1 190645 12 3596022 190645 12 3764915 190645 16 3803981 190645 12 3854102 190645 12 4324593 190645... (12 Replies)
Discussion started by: emily
12 Replies

7. Shell Programming and Scripting

Compare Two Files(Column By Column) In Perl or shell

Hi, I am writing a comparator script, which comapre two txt files(column by column) below are the precondition of this comparator 1)columns of file are not seperated Ex. file1.txt 8888812341181892 1243548895685687 8945896789897789 1111111111111111 file2.txt 9578956789567897... (2 Replies)
Discussion started by: kumar96877
2 Replies

8. Shell Programming and Scripting

Compare files column to column based on keys

Here is my situation. I need to compare two tab separated files (diff is not useful since there could be known difference between files). I have found similar posts , but not fully matching.I was thinking of writing a shell script using cut and grep and while loop but after going thru posts it... (2 Replies)
Discussion started by: blackjack101
2 Replies

9. Shell Programming and Scripting

column compare of files

Hi i want to compare files a.txt 12345,23 34567,76 65456,10 13467,01 b.txt 12346,23 34567,76 23333,90 65456,10 13467,03 i want o/p in 3 files common.txt both have (2 Replies)
Discussion started by: aaysa123
2 Replies

10. Shell Programming and Scripting

Compare Column value from Two Different Files

Hi, I need help to write a korn shell script to 1. Check and compare the first file contains single record from the /scp/inbox directory against the badpnt.dat file from the pnt/badfiles directory contains multiple records based on the fam_id column value start at position 38 to 47 from the... (7 Replies)
Discussion started by: hanie123
7 Replies
Login or Register to Ask a Question