Compare two files based on values of fields.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Compare two files based on values of fields.
# 1  
Old 10-20-2010
Compare two files based on values of fields.

Hi All,
I have two files and data looks like this:

File1 Contents

#Field1,Field2
Dist_Center_file1.txt;21
Dist_Center_file3.txt;20
Dist_Center_file2.txt;20

File2 Contents (*** No Header ***)

Dist_Center_file1.txt;23
Dist_Center_file2.txt;20
Dist_Center_file3.txt;20

I have to look for 1st field value (Dist_Center_file1.txt) in 2nd file and then compare the 2nd field values (Separated by semi colon).

If there is a difference in 2nd value then write out a difference record to an output file. For example records in this output file will be:

** Counts are different for Dist_Center_file1.txt, File1 Cnt:21 File2 Cnt:23 *

Here File1, File2 names will be constants, Dist_Center_file1.txt is the value from 1st file. 21 is the count from 1st file and 23 is count from 2nd file.

When 1st file is done, start with 2nd file and make sure that all records of 2nd file are present in 1st file.

How can I do this??

Smilie

Thanks in advance guys!!
# 2  
Old 10-20-2010
Code:
# cat File1
Dist_Center_file1.txt;21
Dist_Center_file3.txt;20
Dist_Center_file2.txt;20
# cat File2
Dist_Center_file1.txt;23
Dist_Center_file2.txt;20
Dist_Center_file3.txt;20
# awk -F\; 'NR==FNR{a[$1]=$2;next}a[$1]!=$NF{printf "** Counts are different for %s, %s Cnt:%d %s Cnt:%d *\n",$1,ARGV[1],a[$1],ARGV[2],$NF}' File1 File2
** Counts are different for Dist_Center_file1.txt, File1 Cnt:21 File2 Cnt:23 *

# 3  
Old 10-20-2010
Thanks for your quick response.

Let me try and I will update you.

Smilie;

---------- Post updated at 06:49 PM ---------- Previous update was at 06:35 PM ----------

It is comparing fine.

If you don't mind, could you please explain the answer in detail??

Kind of like, explain for dummies!!

Smilie
# 4  
Old 10-20-2010
what's the point to get the special output format?

If you don't care, use below diff command directly.

Code:
diff <(sort File1) <(sort File2)

1c1
< Dist_Center_file1.txt;21
---
> Dist_Center_file1.txt;23

# 5  
Old 10-21-2010
Tools Diff in count between 2 flat files

Hi I have 2 flat files and want to get count diff w/o counting the header meant one file has header and other don't have one.so if first file has 10 count and second has 11 (with header) ,how can i acheive this.Simply getting count after header(#Date,Quantity'10/26/2010';123)
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Is there a UNIX command that can compare fields of files with differing number of fields?

Hi, Below are the sample files. x.txt is from an Excel file that is a list of users from Windows and y.txt is a list of database account. $ head -500 x.txt y.txt ==> x.txt <== TEST01 APP_USER_PROFILE USER03 APP_USER_PROFILE TEST02 APP_USER_EXP_PROFILE TEST04 APP_USER_PROFILE USER01 ... (3 Replies)
Discussion started by: newbie_01
3 Replies

2. Shell Programming and Scripting

Compare three files based on two fields

Guys, I tried searching on the internet and I couldn't get the answer for this problem. I have 3 files. First 2 fields of all of them are of same type, say they come from various databases but first two fields in the 3 files means the same. I need to verify the entries that are not present... (4 Replies)
Discussion started by: PikK45
4 Replies

3. UNIX for Dummies Questions & Answers

Compare values of fields from same column with awk

Hi all ! If there is only one single value in a column (e.g. column 1 below), then return this value in the same output column. If there are several values in the same column (e.g. column 2 below), then return the different values separated by "," in the output. pipe-separated input: ... (11 Replies)
Discussion started by: lucasvs
11 Replies

4. Shell Programming and Scripting

Compare values in two files. For matching rows print corresponding values from File 1 in File2.

- I have two files (File 1 and File 2) and the contents of the files are mentioned below. - I am trying to compare the values of Column1 of File1 with Column1 of File2. If a match is found, print the corresponding value from Column2 of File1 in Column5 of File2. - I tried to modify and use... (10 Replies)
Discussion started by: Santoshbn
10 Replies

5. Shell Programming and Scripting

Compare fields in files

Hi, I need the most efficient way of comparing the following and arriving at the result I have a file which has entries like, File1: 1|2|5|7|8|2|3|6|3|1 File2: 1|2|3|1|2|7|9|2 I need to compare the entries in these two file with those of a general file, 1|2|3|5|2|5|6|9|3|1... (7 Replies)
Discussion started by: pradebban
7 Replies

6. Shell Programming and Scripting

compare fields in different files

HI I'm having some troubles to compare and permut diffrent fields indexed with another filed like the following example `: file1 1 1 2 2 3 3 file2 7 1 9 2 10 3 result------------------- (6 Replies)
Discussion started by: yassinegoth
6 Replies

7. UNIX for Dummies Questions & Answers

Compare two flat files and update one based on the values in the other

Hi, I'm a newbie to scripting and am trying to compare two files using awk. The files are exactly the same dimensions. Where the first file has 0's I would like to create an updated version of the second file which has the corresponding elements set to zero also. eg: file1: 12345 1 2 0... (3 Replies)
Discussion started by: kasan0
3 Replies

8. Shell Programming and Scripting

Compare two files using awk or sed, add values in a column if their previous fields are same

Hi All, I have two files file1: abc,def,ghi,5,jkl,mno pqr,stu,ghi,10,vwx,xyz cba,ust,ihg,4,cdu,oqw file2: ravi,def,kishore ramu,ust,krishna joseph,stu,mike I need two output files as follows In my above example, each row in file1 has 6 fields and each row in file2 has 3... (3 Replies)
Discussion started by: yerruhari
3 Replies

9. UNIX for Dummies Questions & Answers

Compare two files using awk or sed, add values in a column if their previous fields are same

Hi All, I have two files file1: abc,def,ghi,5,jkl,mno pqr,stu,ghi,10,vwx,xyz cba,ust,ihg,4,cdu,oqw file2: ravi,def,kishore ramu,ust,krishna joseph,stu,mike I need two output files as follows In my above example, each row in file1 has 6 fields and each row in file2 has 3... (1 Reply)
Discussion started by: yerruhari
1 Replies

10. UNIX for Advanced & Expert Users

Compare two files using awk or sed, add values in a column if their previous fields are same

Hi All, I have two files file1: abc,def,ghi,5,jkl,mno pqr,stu,ghi,10,vwx,xyz cba,ust,ihg,4,cdu,oqw file2: ravi,def,kishore ramu,ust,krishna joseph,stu,mike I need two output files as follows In my above example, each row in file1 has 6 fields and each row in file2 has 3... (1 Reply)
Discussion started by: yerruhari
1 Replies
Login or Register to Ask a Question