test the string is char or integer


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users test the string is char or integer
# 1  
test the string is char or integer

How will test the string contains numeric character or alphabet, is there any script to test ?
# 2  
If the string is somewhat fix, you can test it with case/esac, or should it be generic?
# 3  
it is generic.
# 4  
I had the problem not this way yet nor could I find a nice tool to test it. So I come up with this ugly but working solution:

Code:
echo "$1" |\
sed 's/./&\n/g' |\
awk '
        /[a-zA-Z]/ {a+=1}
        /[0-9]/    {n+=1}
        END{
                sum=a+n
                print sum,a,n
                if ( a == 0 && sum == NR-1 ) { print "numeric" }
                if ( n == 0 && sum == NR-1 ) { print "alpha" }
                else { print "something else" }
        }'

# 5  
If you are using phksh, ksh88 or ksh93, here is an example of testing an input to determine if it is all numeric, letters or a mix of numbers and letters:
Code:
#!/bin/ksh

INPUT="ABC"

case $INPUT in
   ( +([0-9])       ) echo "$INPUT is all numbers" ;;
   ( +([a-zA-Z])    ) echo "$INPUT is all characters" ;;
   ( +([0-9a-zA-Z]) ) echo "$INPUT is alphanumeric" ;; 
   (               *) echo "$INPUT is something unknown" ;;
esac

exit 0

# 6  
Hammer & Screwdriver what about this approach?

Code:
> cat test_alpha 
sample1="abcdef"
echo $sample1 - checking alpha
if [ $sample1 = `echo $sample1 | tr -d [0-9]` ]; then  echo "same"; fi

sample2="abc123def"
echo $sample2 - checking alpha
if [ $sample2 = `echo $sample2 | tr -d [0-9]` ]; then  echo "same"; fi

sample3="123456"
echo $sample3 - checking numeric
if [ $sample3 = `echo $sample3 | tr -d [:alpha:]` ]; then  echo "same"; fi

sample4="123abc456"
echo $sample4 - checking numeric
if [ $sample4 = `echo $sample4 | tr -d [:alpha:]` ]; then  echo "same"; fi

and its execution; showing the first is alpha (same) and the third is all numeric (same)
Code:
> test_alpha 
abcdef - checking alpha
same
abc123def - checking alpha
123456 - checking numeric
same
123abc456 - checking numeric

# 7  
Why not use plain old case?

Code:
case $string in
  *[!0-9A-Za-z]*) echo "Not pure alpha + numbers" ;;
  *[!0-9]*) echo "Pure alpha";;
  '') echo "Empty string (duh)" ;;
  *) echo "Pure numbers" ;;
esac

Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #805
Difficulty: Medium
The goal of a Digital Signal Processor (DSP) is usually to measure, filter or compress discrete digital signals.
True or False?

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl Script Integer Test

Working out a small problem, I have a need of a Perl snippet which might look something like this: use integer; ... if ($changingNumber / 2) { do something; } else { do something else; } ... What I want to happen is for "if" to resolve as "true" every time a whole... (3 Replies)
Discussion started by: LinQ
3 Replies

2. Shell Programming and Scripting

How do I test the first char of each line in an array

Hi folks, I am self-learning as I can I have a script that has read a file into an array. I can read out each line in the array with the code: for INDEX in {0..$LENGTH} ## $LENGTH was determined at the read in do echo "${data}" done What I need to do is test the first char... (2 Replies)
Discussion started by: Marc G
2 Replies

3. Shell Programming and Scripting

how to compare string integer with an integer?

hi, how to I do this? i="4.000" if ; then echo "smaller" fi how do I convert the "4.000" to 4? Thanks! (4 Replies)
Discussion started by: h0ujun
4 Replies

4. Programming

I don't know how to replace input char with appropriate integer

Hi guys, I asked for help on programming forums and no one didn't helped me so I ask for help here. I am playing with some tasks from my book and I can't figure where did I get wrong. From the first program I get a blank screen, program won't generate 10*10 matrix. And second problem is I... (6 Replies)
Discussion started by: solaris_user
6 Replies

5. Shell Programming and Scripting

How to check weather a string is like test* or test* ot *test* in if condition

How to check weather a string is like test* or test* ot *test* in if condition (5 Replies)
Discussion started by: johnjerome
5 Replies

6. Shell Programming and Scripting

Test on string containing spacewhile test 1 -eq 1 do read a $a if test $a = quitC then break fi d

This is the code: while test 1 -eq 1 do read a $a if test $a = stop then break fi done I read a command on every loop an execute it. I check if the string equals the word stop to end the loop,but it say that I gave too many arguments to test. For example echo hello. Now the... (1 Reply)
Discussion started by: Max89
1 Replies

7. Programming

to compare two integer values stored in char pointers

How can I compare two integer values which is stored in char pointers? suppose I have char *a and char *b having values 10 and 20. how can i find the shorter value? (1 Reply)
Discussion started by: naan
1 Replies

8. Programming

C function to test string or integer

Hi everyone , Is there any predefined C function that tests whether an input is string or an integer? Thank's in advance :) (3 Replies)
Discussion started by: qqq
3 Replies

9. Programming

Integer to String

Which function should I use to convert an Integer to a String or Char format ? Thanx (2 Replies)
Discussion started by: psilva
2 Replies

Featured Tech Videos