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:

#!/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:

./csv_file_compare.sh newfile1.csv newfile2.csv

file1:

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:

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:

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:

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:

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?

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:

$ 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

$ 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

$ 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

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?

 
$ 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
$

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?

how will that look? Small example please

For example say suppose these were my files:

file1:

 
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:

 
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:

 
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
 

Same solution as suggested already to your previous post, how ever if you want the order of the rows to be retained:

 
diff  op1 op2 | awk '/Blocks/' | sed -e 's/<//g' -e 's/>//g' | awk '!a[$0]++'

thank you alot for your help. I really appreciate it!!!:b:

one more solution

 
$cat x.ksh
#!/bin/ksh
maxlength=$(awk ' length > max { max=length} END{ print max}' $1)
sdiff -l -w $maxlength $1 $2 | sed 's/\|/\
<*changed*>/'
$
 
$ ksh x.ksh file1 file2
User Parameter,Entity Name,Cell ID,Type SubCell / TX / FHSY / DRI / TDMA,Instance CHGR / TX / FHSY / DRI / TDMA,Cell
User Parameter,Entity Name,Cell ID,Type SubCell / TX / FHSY / DRI / TDMA,Instance CHGR / TX / FHSY / DRI / TDMA,Cell
,,,,,,,,,,,,,,
,,,,,,,,,,,,,,
Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,5,5,1,CELL,1A,,,,ERICSSON,GSM,07B
<*changed*>  Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,0,0,1,CELL,1A,,,,ERICSSON,GSM,07B
Access Grant Blocks Reserved,CELL,1A,,,,AGBLK,5,5,1,CELL,1A,,,,ERICSSON,GSM,07B
<*changed*>  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
$