shell script for comparing two files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting shell script for comparing two files
# 1  
Old 08-23-2012
shell script for comparing two files

Hi,

I have 2 files as below

FILE1.dat
Code:
co1|co2|co3
abnd|45.56|AZ
dkny|30.2|PA
sam|.23|VA

FILE.CTL
Code:
FILENAME|FILE1.dat
NO OF RECORDS|3
CHECKSUM|75.99

Could you please help me to write a shell script to compare
1. TOTAL RECORDS from FILE1.dat with NO of RECORDS in FILE.CTL
2. SUM up co2 in FILE1.dat and compare with CHECKSUM value in FILE.CTL

If both conditions are true then success or else fail the script.

Please help

Thanks for your responces
-Deep

Moderator's Comments:
Mod Comment Please view this code tag video for how to use code tags when posting code and data.

Last edited by vbe; 08-23-2012 at 09:45 AM..
# 2  
Old 08-23-2012
What have you tried?
# 3  
Old 08-23-2012
I have tried like this, but could not able to figure out to solve the issue
Code:
 
#!/bin/ksh
set A=`cut -d "|" -f2 /home/user/FILE1.dat`
set E=`$A | awk "{sum +=$1} END { printf "%.2f", sum }"`
set B=`awk "END {print NR-1}" /home/user/FILE1.dat`
set C=`grep "NO OF RECORDS" /home/user/FILE.ctl | cut -d "|" -f2`
set D=`grep "CHECKSUM" /home/user/FILE.ctl | cut -d "|" -f2`
if ($E=$D and $B=$C) then
   echo Status: Success
   exit 0;
else
   echo Status: Failed
   exit 1;
fi

Moderator's Comments:
Mod Comment Please use code tags next time for your code and data.

Last edited by vbe; 08-23-2012 at 10:56 AM.. Reason: code tags...
# 4  
Old 08-23-2012
The first thing is to know how to count the records: At first look your file1.dat has 4 records, but in the controlfile it counts 3... is it to say it ignores the first record (being a heard?...)
# 5  
Old 08-23-2012
sorry for not mentioning it before, yes the first column in FILE1.dat should be ignored
# 6  
Old 08-23-2012
Something not correct here:
Code:
 E=`echo $A | awk '{sum +=$1} END { printf "%.2f", sum }'`


Last edited by vbe; 08-23-2012 at 12:26 PM.. Reason: corrected...
# 7  
Old 08-23-2012
I had a bit of time to look in depth, so forget the previous post and look:
Code:
#the script:
n12:/home/vbe/wks/z/test01 $ vi test01
#!/bin/ksh
cut -d "|" -f2 FILE1.dat|grep -v co> A                # Your following awk needs an infile at the end so  
                                                      #created  A file to be removed at the end of execution
E=$( awk '{ sum +=$1 } END { printf "%.2f", sum }' A) #see now? and as mentionned in previous post single quote
  echo E $E
B=$(awk "END {print NR-1}" FILE1.dat )                # The rest was correct - just changed to more modern ksh
  echo B $B                                           # syntax  $( commands...)
C=$(grep "NO OF RECORDS" FILE.ctl | cut -d "|" -f2)
  echo C $C
D=$(grep "CHECKSUM" FILE.ctl | cut -d "|" -f2)
  echo D $D 

rm A 

if [ $E -eq $D -a  $B -eq $C ]                        # You are testing numeric values no?
then
   echo Status: Success
   exit 0
else
   echo Status: Failed
   exit 1
fi
#exit...
:q

# Execution output:
n12:/home/vbe/wks/z/test01 $ ./test01 
E 75.99
B 3
C 3
D 75.99
Status: Success
n12:/home/vbe/wks/z/test01 $


Last edited by vbe; 08-23-2012 at 01:41 PM.. Reason: added comments
This User Gave Thanks to vbe For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Comparing 2 files using awk , not getting any results - C shell

I am using c shell and trying to compare 2 files using awk . But the below awk statement doesnt give any result. Pls. advise why am not getting the desired o/p with the corrected awk script. Need to acheive this solution in awk using C shell. awk 'FNR==NR{a++;next} {for(i in a) {if ( a=$0... (8 Replies)
Discussion started by: reach2khan
8 Replies

2. UNIX for Dummies Questions & Answers

Shell script needed for comparing two files

Hi, I need shell script to compare the two files based on certain fields and output should contains the required fields based on result.pls find sample input files and required output file 1 COUNT, BNG_IP,PORT,OVLAN 22 , 10.238.60.129,1/1,2009 144 , 10.238.60.129,1/1,2251 ... (5 Replies)
Discussion started by: surender reddy
5 Replies

3. Shell Programming and Scripting

Need Help in comparing 2 text files in shell script

Hi All, I have 2 files like below vi f1 frog elephant rabit zebra dog vi f2 rabit dog ============== Now i want to comapre two files and the result will be frog (8 Replies)
Discussion started by: kumar85shiv
8 Replies

4. Shell Programming and Scripting

Need help in comparing two files using shell or Perl

I have these two file that I am trying to compare using shell arrays. I need to find out the changed or the missing enteries from File2. For example. The line "f nsd1" in file2 is different from file1 and the line "g nsd6" is missing from file2. I dont want to use "for loop" because my files... (2 Replies)
Discussion started by: sags007_99
2 Replies

5. Shell Programming and Scripting

Comparing 2 files using shell script

Hi Experts, I have 2 files 1 file consists of 800 records and 2 file consists of 100 records with matching column as Membership_Num.So i need a script which will compare the 2 files and displays the output.As these are the files the script should take any delimter like (tab,comma) as input... (6 Replies)
Discussion started by: naveen.dasu
6 Replies

6. Shell Programming and Scripting

comparing 2 files in shell script

I have 2 files config1h.txt ----------------- BFMU=ENABLE,ID=PM THR=OFF,REP=ALL,CON=IACM,TIM=OFF;GPON collection strategy 1.3.6.1.2.1.2.2:8 1.3.6.1.2.1.2.2:7 1.3.6.1.4.1.637.61.1.35.11.4:4 1.3.6.1.4.1.637.61.1.35.11.4:3 1.3.6.1.4.1.637.61.1.35.10.1:2 1.3.6.1.4.1.637.61.1.35.10.1:43... (7 Replies)
Discussion started by: LavanyaP
7 Replies

7. Shell Programming and Scripting

comparing two files using shell script

hi experts please help me to compare two files which are in different directory file1<file will be master file> (/home/rev/mas.txt} ex x1 x2 file2 <will be in different folder> (/home/rev/per/.....) ex x3 x4 the filesinside per folder i need to compare with master file and the files... (2 Replies)
Discussion started by: revenna
2 Replies

8. UNIX for Dummies Questions & Answers

shell script for comparing 2 files

Hi, how to read the 2 files and compare each other in shell script? i have 2 files test1 and test2, both files contains 20 character records.we have to compare file 1 records with file2, if exists then reject the record else we have to append it to test2 file. in file test1 around 100 single... (2 Replies)
Discussion started by: prashanth.spl
2 Replies

9. Shell Programming and Scripting

shell script comparing files in a file

There is a text file that contains the data in the following format: COLUMN1 COLUMN2 ABC 1 ABC 2 ABC 3 DEF 4 DEF 5 XYZ 7 We have to create a second text file... (4 Replies)
Discussion started by: raina_nalin
4 Replies
Login or Register to Ask a Question