Sponsored Content
Top Forums Shell Programming and Scripting Closest Number from a Range of Numbers Post 302547698 by SkySmart on Tuesday 16th of August 2011 11:15:01 AM
Old 08-16-2011
Closest Number from a Range of Numbers

out of a range of numbers, how can i pick out the number that is the closest to any arbitrary/random number that a user supplies?

say the range of numbers are between 1 - 90000. but that doesn't mean each number exist between 1 - 90000. the range of numbers could be for example:

Code:
1, 3, 4, 6, 10, 30, 48, 49, 50, 51......89999, 90000

As you can see, the numbers are in order from smallest to greatest, however, some numbers are missing. Say a user provides a number that is missing in the range of numbers. How do I grab the closest number in that range to what the user provided?

like say the user provided the number 39. From looking at the above range, you can see that the number 35 doesn't exist. So, how do I know to pick the closest number to 39 that does exist in the range? The closest numbers to 39, in the above range, are 30 and 48. How can I do this in a bash shell script?

I hope i'm making sense to you guys.

Last edited by SkySmart; 08-16-2011 at 12:25 PM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

grep numbers range

I want to grep a range of numbers in a log file. My log file looks like this: 20050807070609Z;blah blah That is a combination of yr,month,date,hours,minutes,seconds. I want to search in the log file events that happened between a particular time. like between 20050807070000 to 20050822070000... (1 Reply)
Discussion started by: azmathshaikh
1 Replies

2. Shell Programming and Scripting

awk or sed for finding closest pattern to a line number

hi guys, I want to do pattern matching with awk or sed but I don't know how. here's what I want: I have a line number for a pattern that I have already found using grep, and I know a pattern like "---" that happens a few lines above that certain line number. I want to print out the chunk... (1 Reply)
Discussion started by: alirezan
1 Replies

3. Shell Programming and Scripting

read numbers from file and output which numbers belongs to which range

Howdy experts, We have some ranges of number which belongs to particual group as below. GroupNo StartRange EndRange Group0125 935300 935399 Group2006 935400 935476 937430 937459 Group0324 935477 935549 ... (6 Replies)
Discussion started by: thepurple
6 Replies

4. Shell Programming and Scripting

delete rows between closest pattern or range

Hi I am having some problom deleting the lines between two specific lines in a file. need to delete lines between two closest lines. i.e need to find the closest range or pattern in a file with repeating patterns. Sample Input: WARNING <some text in n number of lines> ERROR:2597... (10 Replies)
Discussion started by: sudheer1984
10 Replies

5. UNIX for Dummies Questions & Answers

Frequency of a range of numbers

Hello, I have a column where there are values from 1 to 150. I want to get the frequency of values in the following ranges: 1-5 6-10 11-15 .... .... .... 146-150 How can I do this in a for loop? Thanks, Guss (1 Reply)
Discussion started by: Gussifinknottle
1 Replies

6. Shell Programming and Scripting

the smallest number from 90% of highest numbers from all numbers in file

Hello All, I am having problem to find what is the smallest number from 90% of highest numbers from all numbers in file. I am having file with thousands of lines and hundreds of columns. I am familiar mainly with bash but I am open to whatever suggestion witch will lead to the solutions. If I... (11 Replies)
Discussion started by: Apfik
11 Replies

7. Shell Programming and Scripting

grep for a range of numbers

Dear Friends, I want to know how to grep for the lines that has a number between given range(start and end). I have tried the following sed command. sed -n -e '/20030101011442/,/20030101035519/p' However this requires both start and end to be part of the content being grepped. However... (4 Replies)
Discussion started by: tamil.pamaran
4 Replies

8. UNIX for Dummies Questions & Answers

Grep for a range of numbers?

I am trying to extract specific information from a large *.sam file (it's originally 28Gb). I want to extract all lines that are on chr3 somewhere in the range of 112,937,439-113,437,438. Here is a sample line from my file so you can get a feel for what each line looks like: seq.4 0 ... (8 Replies)
Discussion started by: genGirl23
8 Replies

9. Shell Programming and Scripting

Print line when closest number if found

so i have a code that identifies which value is the closest to a value provided by the user. awk -F"," -v c=${COLUMN} -v t=${USTIME} '{a=$c}END{ asort(a);d=a-t;d=d<0?-d:d;v = a for(i=NR-1;i>=1;i--){ m=a-t;m=m<0?-m:m if(m<d){ ... (3 Replies)
Discussion started by: SkySmart
3 Replies

10. Shell Programming and Scripting

Check/print missing number in a consecutive range and remove duplicate numbers

Hi, In an ideal scenario, I will have a listing of db transaction log that gets copied to a DR site and if I have them all, they will be numbered consecutively like below. 1_79811_01234567.arc 1_79812_01234567.arc 1_79813_01234567.arc 1_79814_01234567.arc 1_79815_01234567.arc... (3 Replies)
Discussion started by: newbie_01
3 Replies
NUMRANGE(1)						User Contributed Perl Documentation					       NUMRANGE(1)

NAME
numrange - Print out a range of numbers for use in for loops and such. SYNOPSIS
numrange [-dhV] /<expression>/ DESCRIPTION
numrange will print out a list of numbers based on an expression that you specify. This is useful for making a list of numbers for use in for loops and so on. Ranges are inclusive. Ranges of numbers are specified using the .. operator, like this /20..50/, which means all integers from 20 to 50 inclusive. More complex expressions can be generated using the commas and the 'i' increment operator. OPTIONS
-e <set> Exclude the <set> of numbers from the range output. <set> is a set of numbers separated by commas. -n <n> Use <n> as the separator between numbers. By default, it will use a space. Use ' ' or \n for a newline character or use the -N option. -N Just a quick option for using a newline as the separator. -h Help: You're looking at it. -V Increase verbosity. -d Debug mode. For developers EXAMPLES
All numbers from 1 to 10. $ numrange /1..10/ 1 2 3 4 5 6 7 8 9 10 From 10 to 1. Counting down. $ numrange /10..1/ 10 9 8 7 6 5 4 3 2 1 From 1 to 10 and from 15 to 20. $ numrange /1..10,15..20/ 1 2 3 4 5 6 7 8 9 10 15 16 17 18 19 20 Even numbers from 0 to 10 $ numrange /0..10i2/ 0 2 4 6 8 10 Odd numbers. Notice the starting number in the range expression. $ numrange /1..10i2/ 1 3 5 7 9 Factors of 3 between 99 and 120. $ numrange /99..120i3/ 99 102 105 108 111 114 117 120 Decimal numbers $ numrange /1.1..2.5i0.1/ 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 And negative numbers too. $ numrange /1.0..-2.0i0.3/ 1 0.7 0.4 0.1 -0.2 -0.5 -0.8 -1.1 -1.4 -1.7 -2 You can also pad numbers when you are counting up. This is a trick of how the Perl programming language deals with ranges: $ numrange /01..15/ 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 BUGS
Even though you can do zero padding on simple ranges, like 001..100, it will not pad zeros on complex ranges like 001..100i2, or for counting downwards. SEE ALSO
seq(1), numaverage(1), numbound(1), numinterval(1), numnormalize(1), numgrep(1), numprocess(1), numsum(1), numrandom(1), numround(1) COPYRIGHT
numrange is part of the num-utils package, which is copyrighted by Suso Banderas and released under the GPL license. Please read the COPYING and LICENSE files that came with the num-utils package Developers can read the GOALS file and contact me about providing submitions or help for the project. MORE INFO
More info on numrange can be found at: http://suso.suso.org/programs/num-utils/ perl v5.10.1 2009-10-31 NUMRANGE(1)
All times are GMT -4. The time now is 05:04 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy