problem in comparing numeric with string


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting problem in comparing numeric with string
# 1  
Old 01-28-2008
problem in comparing numeric with string

Hi all,

I am having a problem in comparing numeric value with string.
I have a variable in my script which gets the value dynamically. It can be a numeric value or a string. [ FILE_COUNT=5 (or) FILE_COUNT="VARIABLE" ]

I have to do separate task based on its value numeric or sting variable VARIABLE.

I grep FILE_COUNT and obtained the value. But its giving error when i did either
if [ $FILE_COUNT = "VARIABLE" ]
or
if [ $FILE_COUNT -eq "VARIABLE" ]
as it is not two numeric or two string comparisons.

I tried using test also likewise
if [ test $FILE_COUNT = "VARIABLE" ] but invain Smilie

I am thinking of using "typeset -i <variable>" concept but it assigns 0 if it is a string and the dynamic value that i receive can also be 0.

So, can you please give me some light in to this issue to let me move forward in this.

Thanks in advance,

Naren
# 2  
Old 01-28-2008
does this help:
Code:
if [ $FILE_COUNT == "VARIABLE" ] ; then
  echo "is VARIABLE"
else
  echo "is a number"
fi

# 3  
Old 01-28-2008
It is still showing the error message using the == operator
expr: 0402-050 Syntax error.
# 4  
Old 01-28-2008
The one that yogesh is mentioning above should work for both numeric and string comparison. A different look of the same.

Code:
$ VAR=25
$ [ $VAR == "25" ] && echo "Y" || echo "N"
Y

$ VAR=25A
$ [ $VAR == "25A" ] && echo "Y" || echo "N"
Y

# 5  
Old 01-28-2008
You people are right. But what i am trying is not numeric to numeric or string to string comparison. But it is like
$ VAR=25
And i want to check if $VAR is "25A" or not. Likewise
$ if [ $VAR == "25A" ] { .........} else { ..........}

And this is giving error.
# 6  
Old 01-28-2008
maybe something like:

if [[ $VAR == 25* ]]
# 7  
Old 01-29-2008
Code:
#!/bin/sh

export VAR1=$1

export VAR2=`echo $VAR1 | tr '[:lower:]' '[:upper:]' | sed 's/[A-Z]//g'`

echo "VAR1=$VAR1, VAR2=$VAR2"

if [ x"$VAR1" != x"$VAR2" ]
then
        echo "VARIABLE !!!"
else
        echo "NUMERIC !!!"
fi

Code:
./titi 2634
VAR1=2634, VAR2=2634
NUMERIC !!!

./titi 2634Bhj
VAR1=2634Bhj, VAR2=2634
VARIABLE !!!

./titi 26efg34Bhj
VAR1=26efg34Bhj, VAR2=2634
VARIABLE !!!


Last edited by V3l0; 01-29-2008 at 07:07 AM.. Reason: Complement
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Extract all first numeric character from a string

Hello, I have a file of strings a below:- 4358RYFHD9845 28/COC/UYF984 9834URD 98HJDU I need to extract all the first numeric character of every sting as follows:- 4358 28 9834 thanks to suggest ASAP Regards, Jasi Use code tags, thanks. (7 Replies)
Discussion started by: jassi10781
7 Replies

2. Programming

C++ Get text and numeric value from a string

I have a string opt="row234" I want to put "row" in a string and 234 in an int. In general it should be opt="textnum" I want to store text in a string and num in an int. (6 Replies)
Discussion started by: kristinu
6 Replies

3. UNIX for Dummies Questions & Answers

Comparing a String variable with a string literal in a Debian shell script

Hi All, I am trying to to compare a string variable with a string literal inside a loop but keep getting the ./testifstructure.sh: line 6: #!/bin/sh BOOK_LIST="BOOK1 BOOK2" for BOOK in ${BOOK_LIST} do if then echo '1' else echo '2' fi done Please use next... (1 Reply)
Discussion started by: daveu7
1 Replies

4. Shell Programming and Scripting

check if a string is numeric

I checked all the previous threads related to this and tried this. My input is all numbers or decimals greater than zero everytime. I want to check the same in the korn shell script. Just validate the string to be numeric. This is what I am doing. var="12345" if ) -o "$var" !=... (14 Replies)
Discussion started by: megha2525
14 Replies

5. Shell Programming and Scripting

Problem in comparing 2 files string by string

Hi Champs, I am a newbie to unix world, and I am trying to built a script which seems to be far tough to be done alone by me..... " I am having a raw csv file which contains around 50 fields..." From that file I have to grep 2 fields "A" and "B"....field "A" is to be aligned vertically... (11 Replies)
Discussion started by: jitendra.pat04
11 Replies

6. Shell Programming and Scripting

Problem comparing String using IF stmt

Hi frnds Im facing an issues while trying to compare string using IF stmt, my code is: chkMsgName=`Service Fee Detail` if then if then if then echo "Valid File Ready for processing" fi fi ... (5 Replies)
Discussion started by: balesh
5 Replies

7. Shell Programming and Scripting

Extracting numeric from string

I have a file whose contents are: $ cat file1 cfd_V03R37 cfd_V03R38 tried sed 's///g' file1 > file2 $cat file1 0337 0338 Is there any way by which i can work on same file and write o/p to the same file instead of using file2 (3 Replies)
Discussion started by: vjasai
3 Replies

8. Programming

check the given string is numeric or not.

Hi, how to check the given string is numeric or not , without converting ( using strtol...). for ex: if string is C01 - non-numeric data if string is 001 - numeric data TIA (11 Replies)
Discussion started by: knowledge_gain
11 Replies

9. Shell Programming and Scripting

numeric string and length

given a string passed to a program that supposed to be numeric and of a certain length say 8 digits - so say for e.g. need to verify this 01234567 How would I parse this string to validat it meet requirements I tried to use * | sed /\(\{8})/ Thanks in advance (1 Reply)
Discussion started by: dragrid
1 Replies

10. Shell Programming and Scripting

Convert string to numeric

Hi, I have read some figures from a text file by getting the position and wish to do some checking, but it seem like it won't work. eg. my figure is 0.68 it still go the the else statement, it seems like it treat it as a text instead of number. Anybody can Help ? Thanks. # only... (3 Replies)
Discussion started by: kflee2000
3 Replies
Login or Register to Ask a Question