Regarding sorting


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Regarding sorting
# 1  
Old 02-05-2009
Regarding sorting

I have the following file. Its an output from a du command with certain conditions attached to it. I used du -ah as I need the 1st column to look human readable. sort -nr is not giving me the output I need, nor is sort -dr. Please help out.

Code:
 cat testout

 121K   ./OMautomation/pvd
  14M   ./OMautomation/pqms
  14M   ./OMautomation
  14M   .
   5K   ./shell
   5K   ./backup
   3K   ./dir2


I need the file to be re ordered as

Code:
  14M   ./OMautomation/pqms
  14M   ./OMautomation
  14M   .
 121K   ./OMautomation/pvd
    5K   ./shell
    5K   ./backup
    3K   ./dir2


Last edited by vivek.bharadwaj; 02-05-2009 at 09:22 AM..
# 2  
Old 02-05-2009
sort doesn't know if Megabyte is more than Kilobyte. Even sorting by the letter wont help when it comes to Gigabyte. Since alphabetical order is not the same as size order in descriptions ie.

Size order:
Code:
G
M
K

Alphabetical order:
Code:
G
K
M

So maybe better produce some output where all the sizes are written with zeroes filling up the size description or either write something yourself that changes it to the needed comparable sizes.
# 3  
Old 02-05-2009
Well I did have the idea of using sed to replace all G's with six zeros, M's with 3 zeros but the problem is in converting them back...suppose a file has 1000K i dont want it to appear as 1KK after converting it backwards Smilie


Is there a way to accept each Column as an array, check one array for the pattern(here M or G or K) and then print the corresponding index of the other arrays? I've tried it but just cant seem to do it right.

Hope to get some answers Smilie
# 4  
Old 02-05-2009
Could easily have awk parsing K, M, G to add the zeroes and then check the length() of the variable to change it back to K, M, G.
# 5  
Old 02-06-2009
Well I've discovered another problem with what you've said...now suppose I have a folder with size 1.1 M (indeed i do!) then I guess I cant use this logic.
# 6  
Old 02-06-2009
I think at first you should list/count-in all possibilities of the output you want to parse. To make it easier, it is recommended to produce an output that is somewhat in line. As we had this in your other thread already by modifying the output of your "du", I still suggest you get a maybe "less human readable" form of your output and sort it. After that you can still parse it back to a human readable form as I stated in my former post regarding awk as example.
# 7  
Old 02-06-2009
Fine then, I guess there is no easy way out of this one, most probably will go for the sorting of du -k and then depending on length, will add a multiplying factor (like 1/1024 for e.g). Thanks for the input Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sorting help

Hi, Please i need help in writing an 'awk' script in sorting the following data; traceroute6 to 2001:1ba0:2a0:5965:0:30:24:1 (2001:1ba0:2a0:5965:0:30:24:1) from 2001:418:1::62, 64 hops max, 16 byte packets 1 2001:418:1::4 0.342 ms 2 2001:418:1::1 0.630 ms 3 2001:504:16::1b1b 0.393 ms 4... (6 Replies)
Discussion started by: sam127
6 Replies

2. Shell Programming and Scripting

sorting

Hi all, Does anyone can help me the following question? I would like to write an AWK script. In the following input file, each number in "start" is paired with numbers in column "end". No Start End A 22,222,33,22,1233,3232,44 555,333,222,55,1235,3235,66... (7 Replies)
Discussion started by: phoeberunner
7 Replies

3. Shell Programming and Scripting

Sorting HELP

Hi, I have posted related topic but as i continue the research I find more need to sort the data. AS(2607:f278:4101:11:dead:beef:f00f:f), AS786 AS6453 AS7575 AS7922 AS(2607:f2e0:f:1db::16), AS786 AS3257 AS36252 AS786 AS3257 AS36252 AS(2607:f2f8:1700::2), AS786 AS6939 AS25795 ... (6 Replies)
Discussion started by: sam127
6 Replies

4. UNIX for Advanced & Expert Users

HELP on sorting

hi everyone, I am kind of new to this forum. I need help in sorting this data out accordingly, I am actually doing a traceroute application and wants my AS path displayed in front of my address like this; 192.168.1.1 AS28513 AS65534 AS5089 AS5089 .... till the last AS number and if possible... (1 Reply)
Discussion started by: sam127
1 Replies

5. UNIX for Dummies Questions & Answers

HELP on sorting

hi everyone, I am kind of new to this forum. I need help in sorting this data out accordingly, I am actually doing a traceroute application and wants my AS path displayed in front of my address like this; 192.168.1.1 AS28513 AS65534 AS5089 AS5089 .... till the last AS number and if possible... (1 Reply)
Discussion started by: sam127
1 Replies

6. Shell Programming and Scripting

Sorting

Let's say that I have a database that I call part ID. This database has the following grouping: Dart1=4 Dart2=8 Dart3=12 Fork1=68 Fork2=72 Fork3=64 Bike1=28 Bike2=24 Bike3=20 Car1=44 Car2=40 Car3=36 I want to write a program that would read this database and tell me when the... (19 Replies)
Discussion started by: Ernst
19 Replies

7. Homework & Coursework Questions

Sorting help

i have list of files: Wang De Wong CVPR 09.pdf Yaacob AFGR 99 Second edition.pdf Shimon CVPR 01.pdf Den CCC 97 long one.pdf Ronald De Bour CSPP 04.pdf ..... how can i sort this directory so the output will be in the next format: <year>\t<conference/journal>\t<author list> - t is tab (its... (1 Reply)
Discussion started by: nirnir26
1 Replies

8. UNIX for Dummies Questions & Answers

Sorting help

i have list of files: Wang De Wong CVPR 09.pdf Yaacob AFGR 99 Second edition.pdf Shimon CVPR 01.pdf Den CCC 97 long one.pdf Ronald De Bour CSPP 04.pdf ..... how can i sort this directory so the output will be in the next format: <year>\t<conference/journal>\t<author list> - t is tab (its... (1 Reply)
Discussion started by: nirnir26
1 Replies

9. UNIX for Dummies Questions & Answers

Sorting help

how can i sort the next list just by look at the numbers (ignore letters) example: abc123 dff4f aaa2aa bbbb55555bb output: aaa2aa dff4f abc123 bbbb55555bb (1 Reply)
Discussion started by: nirnir26
1 Replies

10. Shell Programming and Scripting

Need immediate help with sorting!!!

hey, I have a file that looks smthng like this: /*--- abcd_0050 ---*/ asdfjk adsfkja lkjljgafsd /*---abcd_0005 ---*/ lkjkljbfkgj ldfksjgf dfkgfjb /*-- abcd_0055--*/ klhfdghd dflkjgd jfdg I would like it to be sorted so that it looks like this: /*---abcd_0005 ---*/ lkjkljbfkgj (9 Replies)
Discussion started by: sasuke_uchiha
9 Replies
Login or Register to Ask a Question