Compare values between files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Compare values between files
# 1  
Old 07-13-2009
Compare values between files

I have two files with same name residing in different directory. Each file has 14 columns. I want to compare column by column for each row.

Also, have to take two columns as key identifier;pick a row in File1; retrieve the corresponding row from file2 and then compare the values.

Can someone help me with this scenario?

Thanks!
# 2  
Old 07-14-2009
Code:
#!/bin/ksh
numfld=0
f1=comp1.txt
f2=comp2.txt
flddeli=";"
oifs="$IFS"

# this version is dynamic, take number of fld from source line
#
compare()
{
   f=0   # fldnum 0,1,2,...
   comp=$1  # how many flds we like to compare
   shift
   #echo "($comp) $*"
   while [ $# -gt 0 ]
   do
        value1="${flds[$f]}"
        value2="$1"
        #echo "$value1 - $value2"
        [ "$value1" != "$value2" ] && echo "line ${flds[*]}:fld $f: $value1 / $value2"
        shift
        ((f+=1))
   done
   ((  f  <  comp )) && echo "not enough fields (${flds[*]}) $comp/$f "
}


#####
cat "$f1" | while read line
do
     # put values to the array using some delimeter
     IFS="$flddeli"
     set -A flds $line
     IFS="$oifs"

     fldnum=${#flds[*]}

     # 1st fld is key
     key=${flds[0]}
     #create search value, remember key must include fld delimeter
     searchvalue="^${key}$flddeli"
     data=$( grep "$searchvalue"  "$f2"  2>/dev/null  )
     # if data empty, no record, skip to the next
     [ "$data" = "" ]  && echo "no line $line" && continue
     # we have data, use delimeter as commandline input fld separator - this is nice
     IFS="$flddeli"
     compare  $fldnum $data
     IFS="$oifs"
done

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Compare values in two different files

Hello, I have output in one file that looks like: AA 3 BB 1 CC 3 DD 6 EE 2 FF 6 And output in another file that looks like: 1 EE 3 CC 2 AA I basically want to be able to match the counts in each file against the correct corresponding initials (and then obviosuly base a command on... (7 Replies)
Discussion started by: Nik44
7 Replies

2. Shell Programming and Scripting

Compare two files column values using awk

Judi # cat File1 judi /export/home 76 judi /usr 83 judi # judi # cat File2 judi /export/home 79 judi /usr 82 judi # if COLUMN3 of File2 is greater that COLUMN3 of File1, then print File2's lines juid /export/home 79 Code tags please (2 Replies)
Discussion started by: judi
2 Replies

3. Shell Programming and Scripting

Find and compare values from different txt files

Hello, i am new in Bash. Actually i have a directory : /home/resultfiles and inside i have these txt files: 531_1.out.res, 531_2.out.res , 531_3.out.res 532_1.out.res, 532_2.out.res , 532_3.out.res 533_1.out.res, 533_2.out.res, 533_3.out.res All these txt files has this format : num_q all... (3 Replies)
Discussion started by: nimpoura
3 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

ksh to compare alphanumeric values from 2 files

Hi there, I want to compare 2nd column which are alphanumeric values from each of the 2 files i.e.,lspv_pre.out and lspv_post.out , if found echo some message. lspv_pre.out hdisk0 00c39eaa451144dd rootvg active hdisk1 00c39eaa45223322 ... (3 Replies)
Discussion started by: mbak
3 Replies

6. 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

7. Shell Programming and Scripting

Compare to files and export only different values

Hello, I need to compare two files which have the following structure File1: No : 1 Name : George/Brown Value2 : type2 Value3 : type3 Date : Wed Oct 20 11:12:58 2010 Value : yes No : 2 Name : John/Cash Value2 :... (4 Replies)
Discussion started by: @dagio
4 Replies

8. Shell Programming and Scripting

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... (4 Replies)
Discussion started by: Hangman2
4 Replies

9. Shell Programming and Scripting

open 2 files and compare values script - urgent

Hi gurus I have two csv files that are outputs. The file contains data similar to s.no,number1,number2,date1 -------------------------------- 1, a123,482.29,11/28/07 13:00 2,a124,602.7,9/24/07 14:00 3,a125,266.93,10/9/07 16.48 4,a126,785.15,11/14/07 16:08 <file 2> s.no name... (2 Replies)
Discussion started by: inkyponky
2 Replies

10. Shell Programming and Scripting

Need to compare values on two CSV files

:( Hello, Having a problem with reading two files using awk/nawk, am new to both them. I need to compare field values between two csv files and arrange for an appropriate output if both the values are equal or not for each feild. $cat File1.csv... (4 Replies)
Discussion started by: pgop
4 Replies
Login or Register to Ask a Question