sort files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sort files
# 1  
Old 07-07-2009
sort files

i have a folder contails 3 types of files ,
ls -l
-rw-r--r-- 1 oratest dba 7 Jul 1 15:36 aml001.agl
-rw-r--r-- 1 oratest dba 7 Jul 1 15:36 aml002.agl
-rw-r--r-- 1 oratest dba 6 Jul 1 15:43 aml003.agl
-rw-r--r-- 1 oratest dba 7 Jul 1 15:36 bom001.agl
-rw-r--r-- 1 oratest dba 7 Jul 1 15:36 bom002.agl
-rw-r--r-- 1 oratest dba 7 Jul 1 15:44 bom003.agl
-rw-r--r-- 1 oratest dba 8 Jul 1 15:35 item001.agl
-rw-r--r-- 1 oratest dba 9 Jul 1 15:35 item002.agl
-rw-r--r-- 1 oratest dba 8 Jul 1 15:43 item003.agl

aml , bom , item

i want a script which sort the files by the number after the name,
i want to get the following result after the sort command:

-rw-r--r-- 1 oratest dba 7 Jul 1 15:36 aml001.agl
-rw-r--r-- 1 oratest dba 7 Jul 1 15:36 bom001.agl
-rw-r--r-- 1 oratest dba 8 Jul 1 15:35 item001.agl
-rw-r--r-- 1 oratest dba 7 Jul 1 15:36 aml002.agl
-rw-r--r-- 1 oratest dba 7 Jul 1 15:36 bom002.agl
-rw-r--r-- 1 oratest dba 9 Jul 1 15:35 item002.agl
-rw-r--r-- 1 oratest dba 6 Jul 1 15:43 aml003.agl
-rw-r--r-- 1 oratest dba 7 Jul 1 15:44 bom003.agl
-rw-r--r-- 1 oratest dba 8 Jul 1 15:43 item003.agl

all 001 files will be first , then 002 files and so

the number could be with 4 digits and 5 ...


thanks
# 2  
Old 07-07-2009
Use CODE-tags when you post code, data or logs. Also it is nice that you want a script - what have you tried so far?
# 3  
Old 07-07-2009
Funny complication, but it somehow works

Code:
for j in $(for i in *agl ; do echo $i | sed -e 's/\([a-z]\+\)\([0-9]\+\)/\2\1/g'  ; done | sort | sed -e 's/\([0-9]\+\)\([a-z]\+\)/\2\1/g') ; do ls -l $j ; done

# 4  
Old 07-07-2009
thanks

thanks a lot
you are a very god man

Best Regards
# 5  
Old 07-07-2009
Code:
ls -l | nawk '{tmp=$9; gsub(/[^[0-9]]*/,"",tmp); print tmp" "$0;}' | sort -n | awk '{$1="";print}'

perl:
Code:
open FH,"ls -l *.agl|";
my @arr=<FH>;
print map {$_->[0]} 
      sort {$a->[1] <=> $b->[1]} 
      map {/(?:[^ ]+\s*){8}[^[0-9]]*([0-9]+)\..*$/;[$_,$1]} 
      @arr;

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to sort these files?

Hi, An ls outputs this -rw-rw-rw- 1 jeisma users 0 Aug 8 09:24 file.d1 -rw-rw-rw- 1 jeisma users 0 Aug 8 09:24 file.d10 -rw-rw-rw- 1 jeisma users 0 Aug 8 09:24 file.d11 -rw-rw-rw- 1 jeisma users 0 Aug 8 09:25 file.d2... (3 Replies)
Discussion started by: jeisma
3 Replies

2. UNIX for Beginners Questions & Answers

Sort files to the split second

I need a similar sort, I need to sort the directory by time, but time needs to be to the second or smaller. Using ls -lt but that is only to the minute. (3 Replies)
Discussion started by: mwlaursen
3 Replies

3. Shell Programming and Scripting

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 : for i in `ls or*.dat |... (11 Replies)
Discussion started by: wxuyec
11 Replies

4. Shell Programming and Scripting

sort the files based on timestamp and execute sorted files in order

Hi I have a requirement like below I need to sort the files based on the timestamp in the file name and run them in sorted order and then archive all the files which are one day old to temp directory My files looks like this PGABOLTXML1D_201108121235.xml... (1 Reply)
Discussion started by: saidutta123
1 Replies

5. Shell Programming and Scripting

Sort and output to different files

Hi all! I have a comma delimited file and I'm sorting it based on fields 6, 8 and 10. The following does the job: sort -t, -nk6,10 unsorted.txt -o sorted.txt What I need to do now is to write every row containing same values on fields 6, 8 and 10 to a different file. Any ideas on how to do... (2 Replies)
Discussion started by: Tr0cken
2 Replies

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

7. UNIX for Dummies Questions & Answers

Merge files and sort them

hi all, i have three files naming file1 , file2, file3 . i want to merge the content of these three files, sort them and display the sorted output on the screen page by page. (1 Reply)
Discussion started by: sonu_pal
1 Replies

8. UNIX for Dummies Questions & Answers

Sort files by date, not showing files from today

Hi all, i'm new here in this forum. I really like the helpful answers in this forum. Here a short question. For a script i have to sort files by date and exclude the files of the actual date. Sorting the files by date and preparing the output for awk is done by this line: ls -l... (3 Replies)
Discussion started by: carlosdivega
3 Replies

9. UNIX for Dummies Questions & Answers

sort files

Hi Can some one help me with sorting a file where i am supposed to sort based on the last column(i.e 3rd column) and then by 1 st column Sample data 2 ishika 4 5 suj 3 10 raj 4 23 fff 3 45 amar 4 to be sorted to 5 suj 3 23 fff 3 2 ishika 4 10 raj 4 45 amar 4 I tried to sort... (2 Replies)
Discussion started by: mita10
2 Replies

10. Linux

sort files by date

Hi All, Sorry to throw this frequent question but I lost my notes on it. How do you list the files by date? I'm on red hat. Thanks in advance, itik (1 Reply)
Discussion started by: itik
1 Replies
Login or Register to Ask a Question