compare strings to report error


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting compare strings to report error
# 1  
Old 03-21-2009
compare strings to report error

Hi,

I am a newbie in unix.

I have to solve a problem.


I have a file ( properties.file) with different (key=value) values, as below

agent.x=xyz
agent.y=xyz
agent.z=xyz

I have some other files in the system in different locations with different (key=value) values.

example file is properties1.txt
agent.x=123
method=xyz()

example file is properties2.txt
agent.y=xyz
method=adc()

Now I am in need of a program which reads the first file properties.file,
read all the keys, i.e agent.x,agent.y and then compare them with the files properties1.txt and properties2.txt.

If it finds any key which is not in any of the properties1.txt and properties2.txt it has to report an error.
as an example agent.z in properties.file is not present in any of properties1.txt and properties2.txt

it has to report error only once, saying key is not present.

I am in need of this solution, please help me in this.

Thanks in advance,
RaghuDeep Amilineni
raghu.amilineni
# 2  
Old 03-21-2009
Hi

This one could do that..

Code:
#!/bin/sh
for f in `cat properities.txt`
do
        grep -w "$f" properities1.txt
        if [ $? -eq 0 ];then
        sed '/'$f'/d' properities1.txt > out.lst
        mv out.lst properities.1txt
        break;else
                grep -w $f properities2.txt
                if [ $? -eq 0 ];then
                sed '/'$f'/d' properities2.txt > out.lst
                mv out.lst properities2.txt
                break;else
                echo "$f - Not present in any of the properities file"
                sed '/'$f'/d' properities2.txt > out.lst
                mv out.lst properities2.txt
                break;fi;fi;
done

Thanks
Sha
# 3  
Old 03-21-2009
thank you very much for the code..is there any way to do with out moving data into files?
raghu.amilineni
# 4  
Old 03-21-2009
Hi,

if you try now...this will not remove any data from the files..

#!/bin/sh
for f in `cat properities.txt`
do
grep -w "$f" properities1.txt
if [ $? -eq 0 ];then
break;else
grep -w $f properities2.txt
if [ $? -eq 0 ];then
break;else
echo "$f - Not present in any of the properities file"
break;fi;fi;
done

Thanks
Sha
# 5  
Old 03-23-2009
Thank you very much !
raghu.amilineni
# 6  
Old 03-23-2009
Code:
#!/usr/bin/perl
my ($f1, $f2, $f3) = ("properties.file", "properties1.txt", "properties2.txt");
sub load {
        open(F, "< $_[0]") or die "Could not open file $_[0]: $!\n";
        $_[1]->{(split(/=/, $_))[0]} = (split(/=/, $_))[1] foreach(<F>);
}
load($f1, \%f1); load($f2, \%f2); load($f3, \%f3);
foreach(keys %f1) {
        print "$_ Not found in $f2 and $f3\n" unless( (exists($f2{$_})) || (exists($f3{$_})) );
}

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Ubuntu

Compare 2 strings

I think there is a way to detect mouse movement. valuator changes if the mouse moves. So I need to compare the two strings. Not sure how to do that. How could I send the valuator string to a file ? I would need to do it twice. andy@7_~/Downloads$ xinput query-state 9 2 classes :... (7 Replies)
Discussion started by: drew77
7 Replies

2. UNIX for Beginners Questions & Answers

If statement to compare two strings

Hi, I am trying to do the following to see if "ip" is already present in a file. if ; then echo "hi" else echo "hello" fi I am seeing errors on the if statement. Can someone please correct the syntax for me? Thanks (2 Replies)
Discussion started by: waince
2 Replies

3. Shell Programming and Scripting

Compare 2 Strings

I have 2 values V_1_4_4_b1 and V_1_5_1_RC_b1. I would need to compare them and determine if the 1st value is greater, less or equal than the 2nd value. The result should need to have a return value. I have below code in bash function but it seems it is not comparing it correctly. Any help will... (8 Replies)
Discussion started by: aderamos12
8 Replies

4. Shell Programming and Scripting

How to compare two strings in a file

hello guyzz please help me out.. I have two file a.sh and b.sh it contains two string SD109 ,SD108 . I want to compaere these two string . If a.sh>b.sh do rebasing record time. else it shows no rebasing required. Thanks. (2 Replies)
Discussion started by: abhijtr
2 Replies

5. Shell Programming and Scripting

Compare two strings

hi.. i have a problem to compare two string my code is like that if ] then echo "both data are correct" elif ] echo "data is wrong" fi here $username1 is taking value from file.. (7 Replies)
Discussion started by: shubhig15
7 Replies

6. Shell Programming and Scripting

How to Compare 2 Strings ?

Hello , I want to Compare with 2 strings and get if they are True or not please would like some help on this #!bin/ksh echo "Enter Name 1" read Name1 echo "Enter Name 2" read Name2 echo "------------------------" echo "First Name: $Name1" echo "Second Name: $Name2" echo... (25 Replies)
Discussion started by: shatztal
25 Replies

7. Shell Programming and Scripting

Compare text strings.

Hi Im trying to write a script that compare a text string. But it fails, I think it adds a extra line feed to the result and fails beacuse of that. The script. DT=`date +'%Y%m%d%H%M%S'` #ALARM_BIN=/users/alarms/ssa/alarms/bin QUEUE_THR=10 #unset offset #offset="***Server reports data... (3 Replies)
Discussion started by: vettec3
3 Replies

8. Shell Programming and Scripting

How to compare two strings using if

Hi, Here is my script #!/bin/ksh echo $pick_typ if ];then echo "inside if" else echo "outside if" fi when ever i pass CUS as parameter to this script am getting the correct value CUS, however if i pass ORD as parameter it is not coming inside if it is echoing else "Outside... (12 Replies)
Discussion started by: bhargav20
12 Replies

9. Shell Programming and Scripting

How to compare two strings

Hi all, I am trying to compare two strings/dates, but its throwing error::Syntax error at line 5: Please help !! Any alternate way to compare two dates is also fine.... logdate1=`date -u '+%Y.%m.%d %T'` sleep 5 logdate2=`date -u '+%Y.%m.%d %T'` if test... (5 Replies)
Discussion started by: prashant43
5 Replies

10. Shell Programming and Scripting

to compare two strings

hi all, i am new to unix. Actually i need to compare two string and print the result... suppose type='sun' if; then echo good morning else echo good night fi whether the comparison is right r we need to use eq???? help me please.... :confused: thanks in advance.... (1 Reply)
Discussion started by: ithirak17
1 Replies
Login or Register to Ask a Question