Comparing a list of numbers is less than a variable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Comparing a list of numbers is less than a variable
# 1  
Old 02-24-2016
Wrench Comparing a list of numbers is less than a variable

Hello everyone,

I want to compare a list of numbers in the file TEST01 to the variable $Post. Also remove any duplicate numbers. Create an if then statement indicating if the numbers listed in TEST01 is less than the number value of $Post then print an error message.

Here is the contents of the file TEST01:
HTML Code:
043825
043825
043825
043805
043805
043815
043815
043825
043815
043805
043815
043805
Each time I try to run my script nothing happens. Here's what I have so far:
HTML Code:
#! /bin/ksh

Post='055744'
Testlist=$(cat /home/TEST01)

if [ $Testlist -lt $Post ];then
  echo "there are numbers below the post threshold"
else
  echo "tested good"
fi
Any help is greatly appreciated, thanks.
# 2  
Old 02-24-2016
Hello seekryts15,

If I understood your requirement correctly then you could try following and let me know if this helps you.
Code:
awk -vPOST="$post" '{A[$0]=$0} END{for(i in A){Q=i>POST?i " greater than value of " POST:i " lesser than value of " POST;print Q;Q=""}}'  Input_file

Where let's say variable named post=043826. Then following will be output for same.
Code:
043805 lesser than value of 043826
043815 lesser than value of 043826
043825 lesser than value of 043826

If your requirement doesn't match with above solution please provide us the more sample inputs with sample expected output.
So that we could try to help you more on this. Hope this helps.

Thanks,
R. Singh
This User Gave Thanks to RavinderSingh13 For This Post:
# 3  
Old 02-24-2016
Thank you! The code you provided did work but I was wondering if it can be more along the lines of the if then statement?

Code:
if [ $Testlist -lt $Post ];then
  echo "there are numbers below the post threshold"
else
  echo "tested good"
fi

Example output:
"there are numbers below the post threshold"

or

"tested good"
# 4  
Old 02-24-2016
Try
Code:
TMP=$(echo $Post | sort - file | grep -n $Post)
[ ${TMP%:*} -gt 1 ] && echo "there are numbers below the post threshold" || echo "tested good"

This User Gave Thanks to RudiC For This Post:
# 5  
Old 02-24-2016
Hello seekryts15,

Could you please try following and let me know if this helps you.
Code:
cat script.ksh
Post=50
Testlist=`df -hP /tmp | awk 'FNR>1{sub("%",X,$5);print $5}'`
if [[ $Testlist -lt $Post ]]
then
      echo "there are numbers below the post threshold"
else
      echo "tested good"
fi

Thanks,
R. Singh
This User Gave Thanks to RavinderSingh13 For This Post:
# 6  
Old 02-24-2016
That worked, thank you everyone!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Comparing 2 variable in a list with foreach

cat file1 a b c d e f this is what is in my script foreach i (`cat file1`) foreach j (`cat file1`) #do something here end end basically i want to compare ab, ac, ad, ae, af, ba, bc, bd, be.... and also skipping aa,bb if possible.. if that anyway for me to just use 1 foreach? (2 Replies)
Discussion started by: ctphua
2 Replies

2. Shell Programming and Scripting

Comparing decimal numbers between 0 and 1

For numbers between 0 and 1 the below logic is not working. Output of above shall be "correct" but its echoing "incorrect".Kindly suggest a=.1 if then echo correct else echo incorrect fi Video tutorial on how to use code tags in The UNIX and Linux Forums. (3 Replies)
Discussion started by: itsvikas
3 Replies

3. Shell Programming and Scripting

Comparing Negative Numbers with If/Else

ValA=-29344 if ; then echo "NEGATIVE" else echo "POSITIVE" fi Can someone please tell me how else they would go about doing the above? When i do it, i get errors such as: (10 Replies)
Discussion started by: SkySmart
10 Replies

4. Shell Programming and Scripting

Where to being Comparing numbers?

Hi. I do not know how to compare numbers and need help. In my script I have to figure the MAX, MIN, & Avg. Sales amounts. Please help me. In the code, "transaction" is a counter. #!/bin/bash clear transaction=0 sales=0 total=0 while test $sales ... (9 Replies)
Discussion started by: Ccccc
9 Replies

5. Shell Programming and Scripting

Comparing Decimal Numbers

Im trying to compare two numbers with decimals but its not working as expected. a=1 b=1.1 if then echo "equal" fi When I do this it says that the numbers are equal. Ultimately Im using -le and -ge in the if statements but I tested with -eq for simplicity. Any way to make this... (3 Replies)
Discussion started by: Grizzly
3 Replies

6. Shell Programming and Scripting

comparing with numbers.

How to compare a variable with a value like 00:00:10 ? Thanks (4 Replies)
Discussion started by: nagendramv
4 Replies

7. UNIX for Dummies Questions & Answers

Comparing Version Numbers

Hi There! Apologies if this has been asked previously but I couldn't find the answer I was hoping for. Basically, all I want to do is compare the OS X version against the version that I require in my script. So I'm retrieving the OS version using defaults read, but how can I compare this... (10 Replies)
Discussion started by: davewg
10 Replies

8. UNIX for Dummies Questions & Answers

comparing numbers in a file

Hello, I'm searching for a quick method to read numeric values from a file or a defined variable and identifying the largest number. For instance if the following numbers are in a file or defined to a variable: 09192007 09202007 09182007 09172007 09162007 What "short" method could be used to... (7 Replies)
Discussion started by: dusk2dawn
7 Replies

9. Shell Programming and Scripting

comparing two numbers with the decimals

Can someone tell me how do I comapre two numbers with the decimals in UNIX shell scripting I understand "-gt" can be used only for integers Regards, Giri (4 Replies)
Discussion started by: chittari
4 Replies

10. UNIX for Dummies Questions & Answers

Comparing two numbers

Hello, I kinda newbie in unix so I would like so help.I know that there is a command that compares two integer numbers test (eg. #$1=0 ).I would like to know if it is possible to compare any number with another (eg. 2.3=0 or 3.7!=0 4.5>2.2). Thank you in advance. (1 Reply)
Discussion started by: TabloMaxos
1 Replies
Login or Register to Ask a Question