Sorting a list


 
Thread Tools Search this Thread
# 1  
Sorting a list

Code:
n02-z30-dsr65-terr0.50-dc0.010-16x12drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.008-16x12drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.006-16x12drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.004-16x12drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.002-16x12drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.006-16x12drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.008-16x12drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.010-16x12drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.004-16x12drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.002-16x12drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.008-16x12drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.006-16x12drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.006-16x12drw-run4.cmd
n02-z30-dsr65-terr0.50-dc0.004-16x12drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.008-16x12drw-run4.cmd
n02-z30-dsr65-terr0.50-dc0.010-16x12drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.002-16x12drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.010-16x12drw-run4.cmd
n02-z30-dsr65-terr0.50-dc0.006-16x12drw-run5.cmd
n02-z30-dsr65-terr0.50-dc0.002-16x12drw-run4.cmd
n02-z30-dsr65-terr0.50-dc0.004-16x12drw-run4.cmd
n02-z30-dsr65-terr0.50-dc0.008-16x12drw-run5.cmd
n02-z30-dsr65-terr0.50-dc0.010-16x12drw-run5.cmd
n02-z30-dsr65-terr0.50-dc0.006-16x12drw-run6.cmd
n02-z30-dsr65-terr0.50-dc0.002-16x12drw-run5.cmd
n02-z30-dsr65-terr0.50-dc0.004-16x12drw-run5.cmd
n02-z30-dsr65-terr0.50-dc0.008-16x12drw-run6.cmd
n02-z30-dsr65-terr0.50-dc0.010-16x12drw-run6.cmd
n02-z30-dsr65-terr0.50-dc0.006-16x12drw-run7.cmd
n02-z30-dsr65-terr0.50-dc0.008-16x12drw-run7.cmd
n02-z30-dsr65-terr0.50-dc0.002-16x12drw-run6.cmd
n02-z30-dsr65-terr0.50-dc0.004-16x12drw-run6.cmd

I want to sort to look like below:

First sort by field 6, then by field 5, then in increasing numbers of run tags.

Code:
n02-z30-dsr65-terr0.50-dc0.002-16x12drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.002-16x12drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.002-16x12drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.002-16x12drw-run4.cmd
n02-z30-dsr65-terr0.50-dc0.002-16x12drw-run5.cmd
n02-z30-dsr65-terr0.50-dc0.002-16x12drw-run6.cmd
 
n02-z30-dsr65-terr0.50-dc0.004-16x12drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.004-16x12drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.004-16x12drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.004-16x12drw-run4.cmd
n02-z30-dsr65-terr0.50-dc0.004-16x12drw-run5.cmd
n02-z30-dsr65-terr0.50-dc0.004-16x12drw-run6.cmd
  
n02-z30-dsr65-terr0.50-dc0.006-16x12drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.006-16x12drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.006-16x12drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.006-16x12drw-run4.cmd
n02-z30-dsr65-terr0.50-dc0.006-16x12drw-run5.cmd
n02-z30-dsr65-terr0.50-dc0.006-16x12drw-run6.cmd
n02-z30-dsr65-terr0.50-dc0.006-16x12drw-run7.cmd
  
n02-z30-dsr65-terr0.50-dc0.008-16x12drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.008-16x12drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.008-16x12drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.008-16x12drw-run4.cmd
n02-z30-dsr65-terr0.50-dc0.008-16x12drw-run5.cmd
n02-z30-dsr65-terr0.50-dc0.008-16x12drw-run6.cmd
n02-z30-dsr65-terr0.50-dc0.008-16x12drw-run7.cmd
  
n02-z30-dsr65-terr0.50-dc0.010-16x12drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.010-16x12drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.010-16x12drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.010-16x12drw-run4.cmd
n02-z30-dsr65-terr0.50-dc0.010-16x12drw-run5.cmd
n02-z30-dsr65-terr0.50-dc0.010-16x12drw-run6.cmd

# 2  
Maybe I'm a bit blind with the input, but could I suggest that the following sort of logic is required.

Code:
sort +0.27 -0.29 +0.42 -0.43

I might not have counted correctly, but the sort command say to sort with the first key skipping zero fields, 27 characters ending at zero fields 29 characters then second key as skipping zero fields 42 characters ending at zero fields 43 characters.

It seems to work, but I can't see where your other sort key you are interested is meant to be.


I hope that this helps
Robin
Liverpool/Blackburn
UK

Last edited by radoulov; 01-05-2012 at 08:42 PM.. Reason: Code tags!
# 3  
Sticking to exact locations will be a problem as I might have files like
Code:
n02-z30-dsr65-terr0.50-dc0.2-8x6drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.2-8x6drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.2-8x6drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.2-8x6drw-run4.cmd
n02-z30-dsr65-terr0.50-dc0.002-16x12drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.002-16x12drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.002-16x12drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.002-16x12drw-run4.cmd
n02-z30-dsr65-terr0.50-dc0.002-16x12drw-run5.cmd
n02-z30-dsr65-terr0.50-dc0.002-16x12drw-run6.cmd
 n02-z30-dsr65-terr0.50-dc0.004-16x12drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.004-16x12drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.004-16x12drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.004-16x12drw-run4.cmd
n02-z30-dsr65-terr0.50-dc0.004-16x12drw-run5.cmd
n02-z30-dsr65-terr0.50-dc0.004-16x12drw-run6.cmd

I want to have a list such that for any given drw tag (e.g. 16x12drw), I have
same value for dc (e.g. dc0.004), and then I have the run tag in increasing numbers.

For example
Code:
n02-z30-dsr65-terr0.50-dc0.2-8x6drw-run1.cmd
 n02-z30-dsr65-terr0.50-dc0.2-8x6drw-run2.cmd
 n02-z30-dsr65-terr0.50-dc0.2-8x6drw-run3.cmd
 n02-z30-dsr65-terr0.50-dc0.2-8x6drw-run4.cmd

are grouped together, where the only difference in the value of the run.
I want the run value be in increasing values where all the rest of the file name is identical.

Each set of file names will then be ordered in increasing order of the dc values

Example

Code:
n02-z30-dsr65-terr0.50-dc0.2-8x6drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.2-8x6drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.2-8x6drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.2-8x6drw-run4.cmd
  
n02-z30-dsr65-terr0.50-dc0.5-8x6drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.5-8x6drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.5-8x6drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.5-8x6drw-run4.cmd
  
n02-z30-dsr65-terr0.50-dc0.2-16x12drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.2-16x12drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.2-16x12drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.2-16x12drw-run4.cmd
  
n02-z30-dsr65-terr0.50-dc0.7-16x12drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.7-16x12drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.7-16x12drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.7-16x12drw-run4.cmd


Last edited by kristinu; 01-05-2012 at 02:57 PM..
# 4  
Um ?
# 5  
Suppose I have the following files in any order,
I want top create an output which looks like the one below

Code:
n02-z30-dsr65-terr0.50-dc0.2-4x3drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.2-4x3drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.2-4x3drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.2-4x3drw-run4.cmd
n02-z30-dsr65-terr0.50-dc0.2-4x3drw-run5.cmd
 
n02-z30-dsr65-terr0.50-dc0.2-8x6drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.2-8x6drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.2-8x6drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.2-8x6drw-run4.cmd
  
n02-z30-dsr65-terr0.50-dc0.5-8x6drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.5-8x6drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.5-8x6drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.5-8x6drw-run4.cmd
  
n02-z30-dsr65-terr0.50-dc0.2-16x12drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.2-16x12drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.2-16x12drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.2-16x12drw-run4.cmd
  
n02-z30-dsr65-terr0.50-dc0.7-16x12drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.7-16x12drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.7-16x12drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.7-16x12drw-run4.cmd

First in increasing values of the drw, example

Code:
first the one with 4x3drw, the those with 8x6drw, finally with 16x12drw

For the set of files having 4x3drw, I list the files in the following order

The value of the run should increase having the rest of the file name identical

Example
Code:
n02-z30-dsr65-terr0.50-dc0.2-4x3drw-run1.cmd
n02-z30-dsr65-terr0.50-dc0.2-4x3drw-run2.cmd
n02-z30-dsr65-terr0.50-dc0.2-4x3drw-run3.cmd
n02-z30-dsr65-terr0.50-dc0.2-4x3drw-run4.cmd

As you can see, the only difference on this set of files is that they are ordered
in the order
Code:
run1
run2
run3
run4

# 6  
Code:
sed 's/\.\([0-9][0-9]*\)-/ . \1 - /2' yourfile | sort -k 3n | sed 's/ \([.-]\) /\1/g'

# 7  
I will complicate it a little more, so files are sorted according to increasing values of the tags

For the drw tag (e.g for 4x3drw, 8x6drw, and, 16x12drw) , I multiply the two numbers. For example 4*3=12, 8*6=48, and 16*12=192. Thus I first sort using 4x3drw, then 8x6drw, and finally by 16x12drw. Then for all files having 4x3drw, I look at the value in the dc tag. Example dc0.1 files will be grouped before ones with dc0.8.

Basically it is a bit more structured than the current solution.
 

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #517
Difficulty: Medium
The most basic type of variable that can be used in a computer program is a numeric type.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

List the files after sorting based on file content

Hi, I have two pipe separated files as below: head -3 file1.txt "HD"|"Nov 11 2016 4:08AM"|"0000000018" "DT"|"240350264"|"56432" "DT"|"240350264"|"56432" head -3 file2.txt "HD"|"Nov 15 2016 2:18AM"|"0000000019" "DT"|"240350264"|"56432" "DT"|"240350264"|"56432" I want to list the... (6 Replies)
Discussion started by: Prasannag87
6 Replies

2. Shell Programming and Scripting

Sorting with list, - 2 lists next to 200

Hi I was wondering if anyone knew the best way to have files displayed by list so that they were in numerical order? the problem I am having is I am using the ls and the head command to sort a group of 500 files into manageable 133 file bunches and transfer them to another directory were they will... (4 Replies)
Discussion started by: Paul Walker
4 Replies

3. Shell Programming and Scripting

Sorting a list of words one per line by their ending

Hello, My OS is Windows and therefore DOS. Hence I have no access to Unix tools. I am trying to sort a file in Urdu by the character by which it ends. Each word is on a separate line. As input, an example in English would help: fruit banana apple pear house I need the sort to be on the... (5 Replies)
Discussion started by: gimley
5 Replies

4. Shell Programming and Scripting

Sorting a list

I am trying to sort a list If you walk through the list, every you have passed both website1 and website2 and get back to website1, the last lines should be collected into one line and the process should start again. The following: http://www.website1.com http://www.website1.com... (2 Replies)
Discussion started by: locoroco
2 Replies

5. Shell Programming and Scripting

Perl: Sorting a hash value that is a list.

Hi Folks I am very much a newbie at perl but picking it up and I'm hoping you can help. I have a file input that details all the /etc/group files in our enterprise in the following format: "<host>:<group>:<gid>:<users>" I want to parse this data display it as the following:... (9 Replies)
Discussion started by: g_string
9 Replies

6. Shell Programming and Scripting

Sorting a list of filenames but keeping the path information.

Hi All I've googled around for this and can't see a way of doing it. I have a file that contains a number of records that are layed out something like the following. /path/to/directory/that/contains/a/file/I/need/filename.pdf The path itself can vary both in terms of the names and the... (7 Replies)
Discussion started by: Bashingaway
7 Replies

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

8. Shell Programming and Scripting

Splitting a list @list by space delimiter so i can access it by using $list[0 ..1..2]

EDIT : This is for perl @data2 = grep(/$data/, @list_now); This gives me @data2 as Printing data2 11 testzone1 running /zones/testzone1 ***-*****-****-*****-***** native shared But I really cant access data2 by its individual elements. $data2 is the entire list, while $data,2,3...... (1 Reply)
Discussion started by: shriyer
1 Replies

9. UNIX for Dummies Questions & Answers

Sorting list of files per date column

Hi all, I have a pecular issue in sorting these files (not an ls -lrt) in Solaris environment. All the below files are modified on November 4th, but I want to sort these files as per date (eg: 01May07_1623 = ddmmmyy_hhmm) Nov 4 18:27 SONYELEC00.GI22973.01May07_1623.gpg Nov 4 18:27... (10 Replies)
Discussion started by: shivaastrogun
10 Replies

10. UNIX for Advanced & Expert Users

help with sorting sequence in Unix C:sort -t ':' +0 -1 -n +1 -2 +2 -3 -o list list

Hi List is 000|2008-07-17|556543|RTJ|35-RTGJ|EYT 465|2008-11-10|567789|GHJ|45-DGHH|ETU 533|2008-09-06|567789|GHJ|45-DGHH|ETU How does it do it? sort -t ':' +0 -1 -n +1 -2 +2 -3 -o list list (6 Replies)
Discussion started by: gurvinder
6 Replies

Featured Tech Videos