Using Diff to Compare 2 files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Using Diff to Compare 2 files
# 1  
Old 04-07-2010
Using Diff to Compare 2 files

Hi

I've been trying various methods that I have found online with regards to comparing 2 files using the diff command. Nothing seems to work. The problem is that I'm not too familiar with the proper syntax. Can you please assist me. Here is my script:

Code:
#!/bin/bash
awk -F',' -v file1="$1" -v file2="$2" '{print;}1' OFS="," diff $1 $2 > resultfile.csv

So I'm parsing the two files from the command line, performing a diff on them, and then piping the results to another file.

Here is my command line:

Code:
./csv_file_compare.sh newfile1.csv newfile2.csv

file1:

Code:
User Parameter,Entity Name,Cell ID,Type SubCell / TX / FHSY / DRI / TDMA,Instance CHGR / TX / FHSY / DRI / TDMA,CellR ID,Vendor Parameter,Planned Value,Translated Value,Network Value,Override Level,Override Node,,,,Vendor,Technology,Version
User Parameter,Entity Name,Cell ID,Type SubCell / TX / FHSY / DRI / TDMA,Instance CHGR / TX / FHSY / DRI / TDMA,CellR ID,Vendor Parameter,Planned Value,Translated Value,Network Value,Override Level,Override Node,,,,Vendor,Technology,Version
,,,,,,,,,,,,,,
,,,,,,,,,,,,,,
Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,5,5,1,CELL,1A,,,,ERICSSON,GSM,07B
Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,5,5,1,CELL,1A,,,,ERICSSON,GSM,07B
Access Grant Blocks Reserved,CELL,1B,,,,AGBLK,2,2,1,CELL,1B,,,,ERICSSON,GSM,07B
Access Grant Blocks Reserved,CELL,1B,,,,AGBLK,2,2,1,CELL,1B,,,,ERICSSON,GSM,07B
Access Grant Blocks Reserved,CELL,1C,,,,AGBLK,3,3,1,CELL,1C,,,,ERICSSON,GSM,07B
Access Grant Blocks Reserved,CELL,1C,,,,AGBLK,3,3,1,CELL,1C,,,,ERICSSON,GSM,07B
Access Grant Blocks Reserved,CELL,2A,,,,AGBLK,7,7,1,CELL,2A,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,2A,,,,AGBLK,7,7,1,CELL,2A,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,2B,,,,AGBLK,4,4,1,CELL,2B,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,2B,,,,AGBLK,4,4,1,CELL,2B,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,2C,,,,AGBLK,0,0,1,CELL,2C,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,2C,,,,AGBLK,0,0,1,CELL,2C,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,3A,,,,AGBLK,1,1,1,CELL,3A,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,3A,,,,AGBLK,1,1,1,CELL,3A,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,3B,,,,AGBLK,6,6,1,CELL,3B,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,3B,,,,AGBLK,6,6,1,CELL,3B,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,3C,,,,AGBLK,4,4,1,CELL,3C,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,3C,,,,AGBLK,4,4,1,CELL,3C,,,,ERICSSON,GSM,08B

file2:

Code:
User Parameter,Entity Name,Cell ID,Type SubCell / TX / FHSY / DRI / TDMA,Instance CHGR / TX / FHSY / DRI / TDMA,CellR ID,Vendor Parameter,Planned Value,Translated Value,Network Value,Override Level,Override Node,,,,Vendor,Technology,Version
User Parameter,Entity Name,Cell ID,Type SubCell / TX / FHSY / DRI / TDMA,Instance CHGR / TX / FHSY / DRI / TDMA,CellR ID,Vendor Parameter,Planned Value,Translated Value,Network Value,Override Level,Override Node,,,,Vendor,Technology,Version
,,,,,,,,,,,,,,
,,,,,,,,,,,,,,
Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,0,0,1,CELL,1A,,,,ERICSSON,GSM,07B
Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,0,0,1,CELL,1A,,,,ERICSSON,GSM,07B
Access Grant Blocks Reserved,CELL,1B,,,,AGBLK,2,2,1,CELL,1B,,,,ERICSSON,GSM,07B
Access Grant Blocks Reserved,CELL,1B,,,,AGBLK,2,2,1,CELL,1B,,,,ERICSSON,GSM,07B
Access Grant Blocks Reserved,CELL,1C,,,,AGBLK,3,3,1,CELL,1C,,,,ERICSSON,GSM,07B
Access Grant Blocks Reserved,CELL,1C,,,,AGBLK,3,3,1,CELL,1C,,,,ERICSSON,GSM,07B
Access Grant Blocks Reserved,CELL,2A,,,,AGBLK,7,7,1,CELL,2A,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,2A,,,,AGBLK,7,7,1,CELL,2A,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,2B,,,,AGBLK,4,4,1,CELL,2B,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,2B,,,,AGBLK,4,4,1,CELL,2B,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,2C,,,,AGBLK,0,0,1,CELL,2C,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,2C,,,,AGBLK,0,0,1,CELL,2C,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,3A,,,,AGBLK,1,1,1,CELL,3A,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,3A,,,,AGBLK,1,1,1,CELL,3A,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,3B,,,,AGBLK,6,6,1,CELL,3B,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,3B,,,,AGBLK,6,6,1,CELL,3B,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,3C,,,,AGBLK,4,4,1,CELL,3C,,,,ERICSSON,GSM,08B
Access Grant Blocks Reserved,CELL,3C,,,,AGBLK,4,4,1,CELL,3C,,,,ERICSSON,GSM,08B

Can anyone help me please.

Thank you

---------- Post updated at 04:18 AM ---------- Previous update was at 04:09 AM ----------

I have also tried this:

Code:
awk -F',' -v file1="$1" -v file2="$2" 'NR == FNR {A[$0] = 1; next} !A[$0]' OFS="," $1 $2 > resultfile.csv

But my resultant file shows:

Code:
Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,0,0,1,CELL,1A,,,,ERICSSON,GSM,07B
Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,0,0,1,CELL,1A,,,,ERICSSON,GSM,07B

I need it to show me this:
Code:
Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,5,5,1,CELL,1A,,,,ERICSSON,GSM,07B
Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,0,0,1,CELL,1A,,,,ERICSSON,GSM,07B

What am I doing wrong?
# 2  
Old 04-07-2010
Hi,

The diff utility will compare the contents of file1 and file2 and write to standard output a list of changes necessary to convert file1 into file2:
Code:
$ diff file1 file2
5,6c5,6
< Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,5,5,1,CELL,1A,,,,ERICSSON,GSM,07B
< Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,5,5,1,CELL,1A,,,,ERICSSON,GSM,07B
---
> Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,0,0,1,CELL,1A,,,,ERICSSON,GSM,07B
> Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,0,0,1,CELL,1A,,,,ERICSSON,GSM,07B

or another command sdiff

Code:
$ sdiff file1 file2
User Parameter,Entity Name,Cell ID,Type SubCell / TX / FHSY /      User Parameter,Entity Name,Cell ID,Type SubCell / TX / FH
User Parameter,Entity Name,Cell ID,Type SubCell / TX / FHSY /      User Parameter,Entity Name,Cell ID,Type SubCell / TX / FH
,,,,,,,,,,,,,,                                                     ,,,,,,,,,,,,,,
,,,,,,,,,,,,,,                                                     ,,,,,,,,,,,,,,
Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,5,5,1,CELL,1A,,   |  Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,0,0,1,CELL,
Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,5,5,1,CELL,1A,,   |  Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,0,0,1,CELL,
Access Grant Blocks Reserved,CELL,1B,,,,AGBLK,2,2,1,CELL,1B,,      Access Grant Blocks Reserved,CELL,1B,,,,AGBLK,2,2,1,CELL,
Access Grant Blocks Reserved,CELL,1B,,,,AGBLK,2,2,1,CELL,1B,,      Access Grant Blocks Reserved,CELL,1B,,,,AGBLK,2,2,1,CELL,
Access Grant Blocks Reserved,CELL,1C,,,,AGBLK,3,3,1,CELL,1C,,      Access Grant Blocks Reserved,CELL,1C,,,,AGBLK,3,3,1,CELL,
Access Grant Blocks Reserved,CELL,1C,,,,AGBLK,3,3,1,CELL,1C,,      Access Grant Blocks Reserved,CELL,1C,,,,AGBLK,3,3,1,CELL,
Access Grant Blocks Reserved,CELL,2A,,,,AGBLK,7,7,1,CELL,2A,,      Access Grant Blocks Reserved,CELL,2A,,,,AGBLK,7,7,1,CELL,
Access Grant Blocks Reserved,CELL,2A,,,,AGBLK,7,7,1,CELL,2A,,      Access Grant Blocks Reserved,CELL,2A,,,,AGBLK,7,7,1,CELL,
Access Grant Blocks Reserved,CELL,2B,,,,AGBLK,4,4,1,CELL,2B,,      Access Grant Blocks Reserved,CELL,2B,,,,AGBLK,4,4,1,CELL,
Access Grant Blocks Reserved,CELL,2B,,,,AGBLK,4,4,1,CELL,2B,,      Access Grant Blocks Reserved,CELL,2B,,,,AGBLK,4,4,1,CELL,
Access Grant Blocks Reserved,CELL,2C,,,,AGBLK,0,0,1,CELL,2C,,      Access Grant Blocks Reserved,CELL,2C,,,,AGBLK,0,0,1,CELL,
Access Grant Blocks Reserved,CELL,2C,,,,AGBLK,0,0,1,CELL,2C,,      Access Grant Blocks Reserved,CELL,2C,,,,AGBLK,0,0,1,CELL,
Access Grant Blocks Reserved,CELL,3A,,,,AGBLK,1,1,1,CELL,3A,,      Access Grant Blocks Reserved,CELL,3A,,,,AGBLK,1,1,1,CELL,
Access Grant Blocks Reserved,CELL,3A,,,,AGBLK,1,1,1,CELL,3A,,      Access Grant Blocks Reserved,CELL,3A,,,,AGBLK,1,1,1,CELL,
Access Grant Blocks Reserved,CELL,3B,,,,AGBLK,6,6,1,CELL,3B,,      Access Grant Blocks Reserved,CELL,3B,,,,AGBLK,6,6,1,CELL,
Access Grant Blocks Reserved,CELL,3B,,,,AGBLK,6,6,1,CELL,3B,,      Access Grant Blocks Reserved,CELL,3B,,,,AGBLK,6,6,1,CELL,
Access Grant Blocks Reserved,CELL,3C,,,,AGBLK,4,4,1,CELL,3C,,      Access Grant Blocks Reserved,CELL,3C,,,,AGBLK,4,4,1,CELL,
Access Grant Blocks Reserved,CELL,3C,,,,AGBLK,4,4,1,CELL,3C,,      Access Grant Blocks Reserved,CELL,3C,,,,AGBLK,4,4,1,CELL,
$

with for example
Code:
$ comm -13 file1 file2
Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,0,0,1,CELL,1A,,,,ERICSSON,GSM,07B
Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,0,0,1,CELL,1A,,,,ERICSSON,GSM,07B
$

you can see, what in file2, but not in the file1.

Is this, what you mean?

Greeting
# 3  
Old 04-07-2010
Yes, to make it simpler, I just need to print the line of where the two files differ, and that must be printed to another file. Perhaps, where File2 differs from file1, and print the results of file 2 to the resultant file.

How would that be possible?
# 4  
Old 04-07-2010
Code:
 
$ comm -13 file1 file2 > file3
$ cat file3
Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,0,0,1,CELL,1A,,,,ERICSSON,GSM,07B
Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,0,0,1,CELL,1A,,,,ERICSSON,GSM,07B
$

# 5  
Old 04-07-2010
Thank you so much. Suppose I wanted to list the line from the old file (the original data) along with what has changed in the second file, hwo can I do that?
# 6  
Old 04-07-2010
how will that look? Small example please
# 7  
Old 04-07-2010
For example say suppose these were my files:

file1:

Code:
 
Blocks Reserved,CELL,1A,,,,AGBLK,0,0,1,CELL,1A,,,,ERICSSON,GSM,07B
Blocks Reserved,CELL,1B,,,,AGBLK,2,2,1,CELL,1B,,,,ERICSSON,GSM,07B
Blocks Reserved,CELL,1C,,,,AGBLK,3,3,1,CELL,1C,,,,ERICSSON,GSM,07B

file2:

Code:
 
Blocks Reserved,CELL,1A,,,,AGBLK,5,5,1,CELL,1A,,,,ERICSSON,GSM,07B
Blocks Reserved,CELL,1B,,,,AGBLK,2,2,1,CELL,1B,,,,ERICSSON,GSM,07B
Blocks Reserved,CELL,1C,,,,AGBLK,3,3,1,CELL,1C,,,,ERICSSON,GSM,07B

Then I want my result file to display the original line from file1 and below that the line that changed in file2:

Code:
 
Blocks Reserved,CELL,1A,,,,AGBLK,0,0,1,CELL,1A,,,,ERICSSON,GSM,07B
Blocks Reserved,CELL,1A,,,,AGBLK,5,5,1,CELL,1A,,,,ERICSSON,GSM,07B

Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Diff 3 files, but diff only their 2nd column

Guys i have 3 files, but i want to compare and diff only the 2nd column path=`/home/whois/doms` for i in `cat domain.tx` do whois $i| sed -n '/Registry Registrant ID:/,/Registrant Email:/p' > $path/$i.registrant whois $i| sed -n '/Registry Admin ID:/,/Admin Email:/p' > $path/$i.admin... (10 Replies)
Discussion started by: kenshinhimura
10 Replies

2. Shell Programming and Scripting

Using Diff to compare 2 arrays

I have two arrays and they look like this: array=(`cat /local/mnt/*sys/*includes|grep -v NEW`) array2=(`cat /tmp/*sys.z |grep -v NEW`) I am trying to compare them but I need to use the diff -u command. I am not sure how to do this. I cannot just do diff -u ${array} ${array2} I cannot... (4 Replies)
Discussion started by: newbie2010
4 Replies

3. Shell Programming and Scripting

Compare two CSV files and put the difference in third file with line no,field no and diff value.

I am having two csv files i need to compare these files and the output file should have the information of the differences at the field level. For Example, File 1: A,B,C,D,E,F 1,2,3,4,5,6 File 2: A,C,B,D,E,F 1,2,4,5,5,6 out put file: (12 Replies)
Discussion started by: karingulanagara
12 Replies

4. Shell Programming and Scripting

Shell script to compare ,diff and remove betwen 2 files

Hi Friends Need your expertise. Command to check the difference and compare 2 files and remove lines . example File1 is master copy and File2 is a slave copy . whenever i change, add or delete a record in File1 it should update the same in slave copy . Can you guide me how can i accomplish... (3 Replies)
Discussion started by: ajayram_arya
3 Replies

5. Shell Programming and Scripting

compare two files, diff the result

Hi Everyone, 1.txt 00:01:01 asdf 00:33:33 1234 00:33:33 0987 00:33:33 12 00:33:33 444 2.txt vvvv|ee 444|dd33|ee dddd|ee 12|ee 3ciur|fdd the output should be: (6 Replies)
Discussion started by: jimmy_y
6 Replies

6. Shell Programming and Scripting

Compare two files and output diff to third file

I have made several attempts to read two files of ip addresses and eliminate records from file1 that are in file2. My latest attempt follows. Everything works except my file3 is exactly the same as file1 and it should not be. # !/usr/bin/bash # # NoInterfaces # Utility will create a file... (8 Replies)
Discussion started by: altamaha
8 Replies

7. Shell Programming and Scripting

compare 2 coloum of 2 diff files using perl script

Hi, i am new to perl scripting.. i am still learing it.. i am asked to write a perl script which should compare 2 coloums of 2 different files. if those 2 coloumn are same the script should store the both the lines in 2 diff files. these are files, file 1: 21767016 226112 char 19136520... (3 Replies)
Discussion started by: vasuki
3 Replies

8. UNIX for Dummies Questions & Answers

Compare/Diff between directories and subdirectories?

Hi, Does anybody know the cmd to compare two areas and print out the different files w/ path? I tried cmp and diff and dircmp but with no luck. Should I grep and print? For example: /aa/images/jan ..../images/feb /bb/images/jan ..../images/feb i want to print the compare,... (5 Replies)
Discussion started by: andylee80
5 Replies

9. Shell Programming and Scripting

diff 2 files; output diff's to 3rd file

Hello, I want to compare two files. All records in file 2 that are not in file 1 should be output to file 3. For example: file 1 123 1234 123456 file 2 123 2345 23456 file 3 should have 2345 23456 I have looked at diff, bdiff, cmp, comm, diff3 without any luck! (2 Replies)
Discussion started by: blt123
2 Replies
Login or Register to Ask a Question