Detect continuous number as range


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Detect continuous number as range
# 8  
Old 05-25-2016
Work perfect, many thanks
Code:
root@svr:/var/tmp# more sample.txt 
151442
15144200113571
190370299
2010
212526
212527
212529
212533
212534
212538
212546
212547

root@svr:/var/tmp# awk 'NR==1{Q=T=$0}NR>1{if(($0-Q)==1){q=0;} else {if(T==Q){print Q;T=$0} else {print T OFS Q;T=$0}}};{Q=$0} END{print T OFS Q}'  sample.txt 
151442
15144200113571
190370299
2010
212526 212527
212529
212533 212534
212538
212546 212547

root@svr:/var/tmp# awk 'NR==1{first=$0;prev=$0;next }
> $0 - prev == 1 { prev=$0; next } { if (first != prev) { print first,prev;} else { print prev} prev=$0;first=$0 } END { print  first,prev;}' sample.txt
151442
15144200113571
190370299
2010
212526 212527
212529
212533 212534
212538
212546 212547


Last edited by before4; 05-25-2016 at 04:44 AM..
# 9  
Old 05-25-2016
Hello before4,

Running my recent code as follows, I am getting as expected result.
Code:
awk 'NR==1{Q=T=$0}NR>1{if(($0-Q)==1){q=0;} else {if(T==Q){T=Q=$0;next};print T OFS Q;T=Q=$0;next};Q=$0} END{print T OFS Q}'  Input_file

Output will be as follows.
Code:
212526 212527
212533 212534
212546 212547

Please try it and let me know how it goes then.

Thanks,
R. Singh

Last edited by RavinderSingh13; 05-25-2016 at 05:48 AM..
# 10  
Old 05-25-2016
Hi ,
Try new code from post #6.

Thanks
Pravin
This User Gave Thanks to pravin27 For This Post:
# 11  
Old 05-25-2016
Try also
Code:
awk '
$1 - prev != 1  {printf "%s%s%s ", first==prev?"":prev, MRS, $1
                 first = $1
                 MRS = RS
                }
                {prev = $1
                }
END             {print prev
                }
' file

This User Gave Thanks to RudiC For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Using sed to replace a range of number

Trying to use SED to replace numbers that fall into a range but can't seem to get the logic to work and am wondering if SED will do this. I have a file with the following numbers 3 26 20 5. For the numbers that are greater than zero and less than 25, SED would add the word range after the... (7 Replies)
Discussion started by: jimmyf
7 Replies

2. Shell Programming and Scripting

Generating Random Number in certain range

Hi there I am trying to generate a random number between 40 and 70 using the shell here is my code so far and it keeps going above 70. all help much appreciated! comp=$(( RANDOM%70+40 )) echo $comp (4 Replies)
Discussion started by: faintingquiche
4 Replies

3. Shell Programming and Scripting

Fill data if number range is given

Hi I want to get all numbers if number range is given as input. Eg: INPUT FILE 100-105 107 108-112 OUTPUT REQUIRED: 100 101 102 103 104 105 107 108 109 110 111 112 How can I do it using shell? :confused: Thanks in advance. (11 Replies)
Discussion started by: dashing201
11 Replies

4. Shell Programming and Scripting

If statement test against number range [0-9]

Is it possible to test against a varible within a ranges in a if statement. ex. if ];then echo "not in range" else echo "number within range" fi (8 Replies)
Discussion started by: leemalloy
8 Replies

5. Shell Programming and Scripting

Range of number from 0.1 to 10.0

Is there a way to create a loop that will output number starting from 0.1 to 10.0 0.1 0.2 0.3 0.4 0.5 .. ... 10.0 This is what i tried. for i in {1..50}; do printf -v i '%02d' $i ; echo "$i"; done That will print 01 02 03 .. .. 50 (9 Replies)
Discussion started by: vietrice
9 Replies

6. Shell Programming and Scripting

how can I detect number series range

Hi I have one source file and content of source file as follows; 3 00 3 01 3 02 3 07 3 09 3 10 3 15 3 16 3 17 3 18 3 40 3 45 3 500 3 501 3 502 3 70 3 80 (8 Replies)
Discussion started by: kocaturk
8 Replies

7. Shell Programming and Scripting

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: 1, 3, 4, 6,... (6 Replies)
Discussion started by: SkySmart
6 Replies

8. Shell Programming and Scripting

Number range for SSNs

Hi All. I have a file that has an ID Number field....some of the ID Numbers are actual SSNs. ...does anyone know the range that SSNs may be...this is what I have found so far poking around SSN info sites.... greater than 001-01-0000 and less than 770-00-0000. Does anyone know this to be... (1 Reply)
Discussion started by: lyoncc
1 Replies

9. Shell Programming and Scripting

extract number range from a file

Hi Everyone, a.txt 1272904667;1272904737;1 1272904747;1272904819;1 1272904810;1272904857;1 1272904889;1272904926;1 1272905399;1272905406;1 1272905411;1272905422;1 if i want to get the record, when the a.txt 1st field is between 1272904749 and 1272905399, any simple way by using awk,... (1 Reply)
Discussion started by: jimmy_y
1 Replies

10. Shell Programming and Scripting

validate number range

Hi If I want to read user input and want to validate if it is a numeric number in some range of 1-100 what would be the best way? Sabina (5 Replies)
Discussion started by: sabina
5 Replies
Login or Register to Ask a Question