How to sort the files according to the number?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to sort the files according to the number?
# 1  
Old 02-13-2013
How to sort the files according to the number?

Hi Everyone,

I have a question:
I have a lot of file named like
or10000.dat, or9100.dat, or100.dat, or3100.dat...
I want to deal with these files according to the
number in the name. So I want to deal with or100.dat
first and then or3100.dat and so on.

I used :
Code:
for i in `ls or*.dat | sort -n`;do ...

but the first one is or 10000.dat.

Is there an easy way to do that?
Thanks in advance!

/YC

Last edited by radoulov; 02-13-2013 at 06:53 PM..
# 2  
Old 02-13-2013
Use sort -k through which you can specify the starting and ending position of your sort criteria.

So in your case
Code:
ls or*.dat | sort -k2 -n

---------- Post updated at 03:50 AM ---------- Previous update was at 03:48 AM ----------

Sorry..It should be -k3

Last edited by Franklin52; 02-14-2013 at 03:32 AM.. Reason: Code tags
# 3  
Old 02-13-2013
try:

Code:
for i in `ls or*.dat | sort -k1.3n`;do

Some sorts allow a --debug option which is good to see what they are sorting on.
# 4  
Old 02-13-2013
Quote:
Originally Posted by prasperl
Use sort -k through which you can specify the starting and ending position of your sort criteria.

So in your case

ls or*.dat | sort -k2 -n

---------- Post updated at 03:50 AM ---------- Previous update was at 03:48 AM ----------

Sorry..It should be -k3
Thank you. I tried that. but the file of or10000.dat is still
in front of or100.dat.
it seems not to work.
# 5  
Old 02-13-2013
Yes my solution should work

Last edited by Chubler_XL; 02-13-2013 at 07:09 PM.. Reason: spelling
# 6  
Old 02-13-2013
Yes Chubler_XL is correct..should use 'k.'

Code:
ls or*.dat | sort -t' ' -k1.3 -n
or100.dat
or9100.dat
or10000.dat

Moderator's Comments:
Mod Comment Please use code tags next time for your code and data.
# 7  
Old 02-14-2013
Quote:
Originally Posted by Chubler_XL
Yes my solution should work
Yes, this one works. But I don't know why even after I read
the man page of sort. There is no "-k.". Would you please
explain why this one works? thank you.

by the way I tried to use --debug, but I got unrecognized option '--debug'
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Sort from highest to lowest number

Hi Guys, I am looking for a way to sort the output below from the "Inuse" count from Highest to Lowest. Is it possible? Thanks in advance. user1 0.12 0.06 0 0.12 User Inuse Pin Pgsp Virtual Unit:... (4 Replies)
Discussion started by: jaapar
4 Replies

2. UNIX for Dummies Questions & Answers

Sort by alpha then by number

I have a file like the following: /vol/release /vol/listing /vol/trees7 /vol/toperforce /vol/trees10 /vol/trees2 /vol/wtrain I have tried the following: cat file | sort -t/ -dfk3.1 -t/ -k3.6n That did not work. What I want to do is have the file sorted so that the first... (2 Replies)
Discussion started by: newbie2010
2 Replies

3. Shell Programming and Scripting

Sort Decimal number in UNIX

Hello Everyone, In one of my script, I would like to sort the decimal numbers. For e.g. If I have numbers like 1.0 1.1 1.2 2.0 2.1 3.0 4.0 5.0 6.0 7.0 7.1 7.10 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 I would like to sort them 1.0 1.1 1.2 2.0 2.1 3.0 4.0 5.0 6.0 7.0 7.1 7.2 7.3 7.4... (3 Replies)
Discussion started by: sachinrastogi
3 Replies

4. UNIX for Dummies Questions & Answers

Sort Files based on the number(s) on the file name

Experts I have a list of files in the directory mysample1 mysample2 mysample3 mysample4 mysample5 mysample6 mysample7 mysample8 mysample9 mysample10 mysample11 mysample12 mysample13 mysample14 mysample15 (4 Replies)
Discussion started by: dsedi
4 Replies

5. Shell Programming and Scripting

Help with sort word followed by exponential number and numeric number at the same time

Input file: ID_34 2E-69 2324 ID_1 0E0 3254 ID_1 0E0 5434 ID_5 0E0 436 ID_1 1E-14 2524 ID_1 5E-52 46437 ID_3 65E-20 45467 ID_1 0E0 6578 ... Desired output file: ID_1 0E0 6578 ID_1 0E0 5434 ID_1 0E0 3254 ID_1 5E-52 46437 ID_1 1E-14 2524 ID_3 65E-20 45467 (5 Replies)
Discussion started by: cpp_beginner
5 Replies

6. Shell Programming and Scripting

How to count number of files in directory and write to new file with number of files and their name?

Hi! I just want to count number of files in a directory, and write to new text file, with number of files and their name output should look like this,, assume that below one is a new file created by script Number of files in directory = 25 1. a.txt 2. abc.txt 3. asd.dat... (20 Replies)
Discussion started by: Akshay Hegde
20 Replies

7. Shell Programming and Scripting

How can I sort by n number is like words?

I want to sort a file with a list of words, in order of most occuring words to least occurring words as well as alphabetically. ex: file1: cat 3 cat 7 cat 1 dog 3 dog 5 dog 9 dog 1 ape 4 ape 2 I want the outcome to be: file1.sorted: dog 1 (12 Replies)
Discussion started by: castrojc
12 Replies

8. UNIX for Advanced & Expert Users

Script to sort the files and append the extension .sort to the sorted version of the file

Hello all - I am to this forum and fairly new in learning unix and finding some difficulty in preparing a small shell script. I am trying to make script to sort all the files given by user as input (either the exact full name of the file or say the files matching the criteria like all files... (3 Replies)
Discussion started by: pankaj80
3 Replies

9. Linux

How to sort the number of occurrences

file:///C:/Users/TSHEPI%7E1.LEB/AppData/Local/Temp/moz-screenshot.pngATM@ubuntu:~$ cat numbers2 | sort -n | uniq -c 1 7 1 11 2 10 3 the 1st numbers are the counts from the command "uniq -c", which represent the number of occurrences of each in the file. The "sort -n"... (4 Replies)
Discussion started by: lebogot
4 Replies

10. UNIX for Dummies Questions & Answers

Why doesn't sort -k $number work ??

I know this seems like a stupid question. I am trying to sort an address book. Some peole have first, middle and last names, some only have first and last names. Eg: Bob Hope John Bon Jovi etc .. I want to sort this by last name. I was thinking of using something like sort -k $variable... (5 Replies)
Discussion started by: kevin80
5 Replies
Login or Register to Ask a Question