How to compare two strings


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to compare two strings
# 1  
Old 08-20-2008
Lightbulb 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 $logdate1 -ge $logdate2
then
echo "$logdate1 is greater"
else
echo "$logdate2 is lesset"
fi


Regards
Prashant
# 2  
Old 08-20-2008
Insert

"set -x" at the beginning of your script and run it.

Then look at the contents of your logdate1 and logdate2 variables.

I don't think that it wil be able to cope with periods and spaces within the string variables.

Good luck

Mika

###
# 3  
Old 08-20-2008
Bug Script to compare two times (in date formats)

Since u r comparing two string use '$var' .
Agn in ur prog u used 2 str to comp which gv the wrong result
There r many ways 2 solve this ..I hv written as given below..
Plz chk...Smilie

==============================================
logdate1=`date -u '+%Y.%m.%d %T'`
sleep 5
logdate2=`date -u '+%Y.%m.%d %T'`


d1=`echo $logdate1 | tr '.' ':' | tr ':' ' ' `
d2=`echo $logdate2 | tr '.' ':' | tr ':' ' ' `
dt1=''
dt2=''
for d in $d1
do
dt1=$dt1$d
done

for d in $d2
do
dt2=$dt2$d
done

if [ ` expr $dt1 ` -ge ` expr $dt2 ` ];then
echo "logdate1=$logdate1 is greater"
else
echo "logdate2=$logdate2 is greater"
fi

Last edited by Niroj; 08-20-2008 at 09:53 AM..
# 4  
Old 08-20-2008
Quote:
Originally Posted by prashant43
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 $logdate1 -ge $logdate2
then
echo "$logdate1 is greater"
else
echo "$logdate2 is lesset"
fi


Regards
Prashant
You are making it too hard on yourself. Use
Code:
date +%s

Which gives you the time in seconds.

If you need to get the greater/lesser of the date strings, you can instead use the date command as you have it, pipe it through sort, and then use tail -1 (greater) or head -1 (lesser).

Code:
{ date -u '+%Y.%m.%d %T'; sleep 1; date -u '+%Y.%m.%d %T'; } |sort | head -1

# 5  
Old 08-20-2008
Quote:
Originally Posted by otheus
You are making it too hard on yourself. Use
Code:
date +%s

Which gives you the time in seconds.

If you need to get the greater/lesser of the date strings, you can instead use the date command as you have it, pipe it through sort, and then use tail -1 (greater) or head -1 (lesser).

Code:
{ date -u '+%Y.%m.%d %T'; sleep 1; date -u '+%Y.%m.%d %T'; } |sort | head -1

SmilieThat is good but I used the way how Prashant tried.. so tht he can find wht is the prob in his string comp approach..
# 6  
Old 08-20-2008
Quote:
Originally Posted by Niroj
SmilieThat is good but I used the way how Prashant tried.. so tht he can find wht is the prob in his string comp approach..
The problem is that he's comparing a string using the shell's NUMERICAL comparators (lt, ge, etc). He could use bash's STRING comparators. The weird thing is that they have to be escaped, so I avoid them.

Code:
$ test "0.1.2" \< "0.1.3" && echo smaller
smaller

Again, that only works in BASH (at least since version 2.05 // 2005).
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

Compare strings with space in if statement

DEV> vi test_if_statement.sh "test_if_statement.sh" 9 lines, 205 characters proc_out="Normal completion" proc_out_comp="Normal completion" echo 'proc_out:'$proc_out echo 'proc_out_comp:'$proc_out_comp if then echo 'match' else echo 'no_match' fi ~ ~ ~ ~ ~ ~ ~ ~ ~ (4 Replies)
Discussion started by: cartrider
4 Replies

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

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

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

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

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

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