Visit Our UNIX and Linux User Community


I need to find in a file a list of number where last two digit end in a range


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers I need to find in a file a list of number where last two digit end in a range
# 1  
Old 12-20-2019
I need to find in a file a list of number where last two digit end in a range

I all
I am tryng to find a way to sort a list of number in a file by the value of last two digit.




i have a list like this


Code:
313202320388
333202171199
373202164587
393202143736
323202132208
353201918107
343201887399
363201810249
333201805043
353201791691
323201765095
303201710295
393201663659
313201634149
32201583126
313201578038
333201575834
323201537847
333201467070
33201175281
345201143053
343201134806
373200967235


and I should have on output the numbers where last two digit end in the range 00 to 33


is there a way with awk sed grep or whatelse?
thank you!

Last edited by Neo; 12-20-2019 at 07:56 AM.. Reason: Code Tags Please See YT Video on this: https://youtu.be/4BuPvWJV__k
# 2  
Old 12-20-2019
Yes, of course there is a way... there is always "a way".

The "trick" is for you to try to write some code and experiment to learn how to do it.

So, please try to solve this on your own and post back your code and any error messages you got along the way.


Smilie
# 3  
Old 12-20-2019
Code:
awk 'length<12{print " " $0;next}1' listacos.txt | sort -k1.12 -k1.11


this is the way i found to sort correctly adding a space and justify any of the line... but not grepping the range....
# 4  
Old 12-20-2019
Like this?
Code:
awk '{ last2=substr($NF,length($NF)-1); if (last2 <= 33) printf "%12s\n", $NF }' listacos.txt

This User Gave Thanks to MadeInGermany For This Post:
# 5  
Old 12-20-2019
Quote:
Originally Posted by MadeInGermany
Like this?
Code:
awk '{ last2=substr($NF,length($NF)-1); if (last2 <= 33) printf "%12s\n", $NF }' listacos.txt




wow!


seems this work much better than how i do! :-)


many thanks my friend!
# 6  
Old 12-20-2019
How about:-
Code:
output_width=30                    # Adjust this to get sensible output
while read value
do
   printf "%${output_width}s\n" "${value}"
done < input_file | sort -nk 1.$[output_width-1]  |  tr -d " "

This forces it all to 30 (configurable at the top) characters wide (or numeric with %${output_width}d if you prefer) and then sorts on that. At the end in green, I have taken the liberty to strip the blanks out.



I hope that this option helps,
Robin

Last edited by rbatte1; 12-20-2019 at 01:07 PM..
# 7  
Old 12-21-2019
Code:
awk '/([0-2][0-9]|3[0-3])$/ {printf "%12s\n", $0}'

--- Post updated at 12:08 ---

Code:
column -t -R 1 file | egrep '([0-2][0-9]|3[0-3])$' | sort -k1.11,1.12

--- Post updated at 12:11 ---

that's how it will be cheaper
Code:
grep '[0-2][0-9]$\|3[0-3]$' file | column -t -R1 | sort -k1.11,1.12


Last edited by nezabudka; 12-21-2019 at 05:37 AM..

Previous Thread | Next Thread
Test Your Knowledge in Computers #177
Difficulty: Easy
The Apple Computer Company was founded on April 1, 1976.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

List all file whose 3rd char is digit

list all file whose 3rd char is digit (or Nth position is digit) what will be the required command? (5 Replies)
Discussion started by: rahul
5 Replies

2. Shell Programming and Scripting

Awk numeric range match only one digit?

Hello, I have a text file with lines that look like this: 1974 12 27 -0.72743 -1.0169 2 1.25029 1974 12 28 -0.4958 -0.72926 2 0.881839 1974 12 29 -0.26331 -0.53426 2 0.595623 1974 12 30 7.71432E-02 -0.71887 3 0.723001 1974 12 31 0.187789 -1.07114 3 1.08748 1975 1 1 0.349933 -1.02217... (2 Replies)
Discussion started by: meridionaljet
2 Replies

3. UNIX for Dummies Questions & Answers

list all files containing 4 digit number using grep

how can i list all files in my home directory that have a 4 digit id number, the line number where the id is located and the id itself not printing the entire line? (5 Replies)
Discussion started by: hobiwhenuknowme
5 Replies

4. Programming

Find out 2^n+1 , where n is a 3 digit number

I have to write a c program which takes a 3 digit number n and calculates the value of (2^n)+1 and then determines the number is prime or not. I have tried to first calculate the value of 2^n and then adding one to it and then apply the logic of prime number. but the ultimate problem is that... (7 Replies)
Discussion started by: agrawal.prachi
7 Replies

5. 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

6. Shell Programming and Scripting

list all file whose 2nd char is digit!

how to list all files in current directory whose second character is a digit. i guess i hav to use grep command + ls for this. but dont know how to use? (6 Replies)
Discussion started by: Sgupta
6 Replies

7. Shell Programming and Scripting

How to find out if there's a number at the end of a var

Hi I want to find whether the argument passed to my script ends in a number or not. Like, I want to find out if the argument is of the form: xyzwpq123 or just of the form xyzwpq. Can someone please help me!? Thanks (2 Replies)
Discussion started by: alirezan
2 Replies

8. Shell Programming and Scripting

Write a shell program to find the sum of alternate digits in a given 5-digit number

Hi Can any one please post the answer for the above program.................. (4 Replies)
Discussion started by: banta
4 Replies

9. Shell Programming and Scripting

Number a list at end of line using 'sed'

Hi All I have a script which has produced a list, I have used 'sed' to number my list, but i want to list at end of line with the first line starting at zero (0) and brackets round it ie My List i want Hello (0) this (1) day (2) can (3) be (4) sed '/./=' filename | sed '/./N; s/\n/) /'... (5 Replies)
Discussion started by: chassis
5 Replies

10. Shell Programming and Scripting

Cutting number from range in xml file

Hi folks, I need to find the following value: First,I need to find the starting section by finding the line: <process-type id="OC4J_RiGHTv_${SCHEMA_NAME}" module-id="OC4J"> Second,under this line I need to find the following line: <port id="rmi" range="3765-3776"/> And third,from this line... (4 Replies)
Discussion started by: nir_s
4 Replies

Featured Tech Videos