Sorting files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Sorting files
# 15  
Old 11-08-2011
Code:
sort -t- -k3 list.txt

gives

Code:
yz-789-abc123
yz-456-abc456
yz-123-abc789
vwx-789-def123
vwx-456-def456
vwx-123-def789
stu-789-ghi123
stu-456-ghi456
stu-123-ghi789
pqr-789-jkl123
pqr-456-jkl456
pqr-123-jkl789
mno-789-mno123
mno-456-mno456
mno-123-mno789
jkl-789-pqr123
jkl-456-pqr456
jkl-123-pqr789
ghi-789-stu123
ghi-456-stu456
ghi-123-stu789
def-789-vwx123
def-456-vwx456
def-123-vwx789
abc-789-yz123
abc-456-yz456
abc-123-yz789

I can understand it as the list is sorted using the last field.

However the result from
Code:
sort -t- -k3n list.txt

is

Code:
abc-123-yz789
abc-456-yz456
abc-789-yz123
def-123-vwx789
def-456-vwx456
def-789-vwx123
ghi-123-stu789
ghi-456-stu456
ghi-789-stu123
jkl-123-pqr789
jkl-456-pqr456
jkl-789-pqr123
mno-123-mno789
mno-456-mno456
mno-789-mno123
pqr-123-jkl789
pqr-456-jkl456
pqr-789-jkl123
stu-123-ghi789
stu-456-ghi456
stu-789-ghi123
vwx-123-def789
vwx-456-def456
vwx-789-def123
yz-123-abc789
yz-456-abc456
yz-789-abc123

How is the last command sorting???
# 16  
Old 11-08-2011
I'm not sure what's happening when you force a numeric sort on alphabetical characters ...

Last edited by radoulov; 11-08-2011 at 05:24 PM..
# 17  
Old 11-08-2011
Quote:
Originally Posted by kristinu
It works. Thanks a lot. It would be helpful to understand what the following is doing if it's not too much bother.

Code:
_[$5,$6]++ || $0 = RS $0

I know it is trying to do matching of some kind, but not much idea what.

The thing that is confusing me is the term

Code:
_[$5,$6]

From my understanding $5 and $6 are special variables referring to the arguments passed in SHELL and for $0 is actually referring to the script name.

Hope it helps a bit in your understanding
# 18  
Old 11-09-2011
Quote:
Originally Posted by kristinu
...However the result from
Code:
sort -t- -k3n list.txt

is

Code:
abc-123-yz789
abc-456-yz456
abc-789-yz123
def-123-vwx789
def-456-vwx456
def-789-vwx123
ghi-123-stu789
ghi-456-stu456
ghi-789-stu123
jkl-123-pqr789
jkl-456-pqr456
jkl-789-pqr123
mno-123-mno789
mno-456-mno456
mno-789-mno123
pqr-123-jkl789
pqr-456-jkl456
pqr-789-jkl123
stu-123-ghi789
stu-456-ghi456
stu-789-ghi123
vwx-123-def789
vwx-456-def456
vwx-789-def123
yz-123-abc789
yz-456-abc456
yz-789-abc123

How is the last command sorting???
I think the numeric sort comes into play if the 3rd field starts with a number.

Code:
$
$
$
$ # Third field does not start with a number, hence the effect of -k3n is unknown (output is unsorted apparently)
$
$ cat list.txt
abc-123-yz789
abc-456-yz456
abc-789-yz123
def-123-vwx789
def-456-vwx456
def-789-vwx123
ghi-123-stu789
ghi-456-stu456
ghi-789-stu123
yz-789-abc123
$
$
$ sort -t- -k3n list.txt
abc-123-yz789
abc-456-yz456
abc-789-yz123
def-123-vwx789
def-456-vwx456
def-789-vwx123
ghi-123-stu789
ghi-456-stu456
ghi-789-stu123
yz-789-abc123
$
$
$
$ # Third field starts with a number, hence -k3n sorts on the maximum number sequence it could extract from the beginning of 3rd field
$
$ cat list1.txt
abc-123-789yz
abc-456-456yz
abc-789-123yz
def-123-789vwx
def-456-456vwx
def-789-123vwx
ghi-123-789stu
ghi-456-456stu
ghi-789-12stu
yz-789-123abc
$
$
$ sort -t- -k3n list1.txt
ghi-789-12stu
abc-789-123yz
def-789-123vwx
yz-789-123abc
abc-456-456yz
def-456-456vwx
ghi-456-456stu
abc-123-789yz
def-123-789vwx
ghi-123-789stu
$
$

tyler_durden
# 19  
Old 11-09-2011
Things starting making some sense now.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Complex data sorting in excel files or text files

Dear all, I have a complex data file shown below,,,,, A_ABCD_13208 0 0 4.16735 141044 902449 1293900 168919 C_ABCD_13208 0 0 4.16735 141044 902449 1293900 168919 A_ABCDEF715 52410.9 18598.2 10611 10754.7 122535 252426 36631.4 C_DBCDI_1353 0... (19 Replies)
Discussion started by: AAWT
19 Replies

2. Shell Programming and Scripting

i need help in sorting two files

i have file a 123 234 456 567 678 and file b 123|xxx|hhh|ppp or zzz 234|rrr|ttt|xxx 432|ttt|mmm|nnn 678|cft|byt|mop i want to compare file a to file b such that when each of the lines in file a can be found in file b column1 and also xxx or hhh or ppp or zzz can be... (12 Replies)
Discussion started by: blackzinga80
12 Replies

3. UNIX for Dummies Questions & Answers

help with sorting files

find / -type f 2> /dev/null | find -inum +1 2> /dev/null | find -mtime -30 2> /dev/null what i am trying to do i search all regular files in root directory with one or more inodes modified within last 30 days. the /dev/null is to suppress the permission denied outputs. i am now trying to... (5 Replies)
Discussion started by: iluvsushi
5 Replies

4. UNIX for Dummies Questions & Answers

Sorting files in different directories

hi everybody, first time writing. Here's my question: I've got several files in different directories like this: aa/t1 aa/bb/t2 aa/t2 aa/bb/cc/t1 aa/t3 and would like to get this sorting: aa/t1 aa/bb/cc/t1 aa/t2 aa/bb/t2 aa/t3 (1 Reply)
Discussion started by: Camisa
1 Replies

5. Shell Programming and Scripting

sorting files

hi i have file like below: col1,col2,col3,col4 val1,val2,val3,val4 abc1,abc2,abc3,abc4 this is a 4 column file with 3 rows. i want to sort the file like.. first on col1, then on col2 and so ..on.. i want the sort order to be descending. Pls help.. Thnks Sumit (2 Replies)
Discussion started by: sumit207
2 Replies

6. UNIX for Dummies Questions & Answers

Need some help for sorting files

I am new to shell scripting can u guys please provide a small script for the following senario step1:need to find some files in a directory for ex having 020908 step2:sort them and redirecting to new file (ex:sort abc > abc.sort) i am trying this but giveing flag error ls -l... (4 Replies)
Discussion started by: cgreddy2020
4 Replies

7. Shell Programming and Scripting

need help listing/sorting files

I am currently attempting to create a file which I access from an oracle form. At the minute I do a host command and run an ls -l e.g. /bin/ls -l /dir/dir/dir/ > /tmp/list.txt I then read this file within my oracle form. However I want the user to be able to restrict, sort and filter the... (2 Replies)
Discussion started by: dave_angel
2 Replies

8. Shell Programming and Scripting

Sorting Files

How to sort such files which contains records of varying length and varying lines? (With respect to Bash shell) Eg: Each record begins with a sting of 1/0(binary) which may or may not be followed by properties like AB,BS etc. I have to sort such records on the basis of 1/0 string and keep the... (2 Replies)
Discussion started by: sandeep_hi
2 Replies

9. Shell Programming and Scripting

Sorting files

Hi, What is the command for sorting files according to their size Thanx in advance (4 Replies)
Discussion started by: sendhil
4 Replies

10. UNIX for Advanced & Expert Users

sorting files

ok so I'm having major issues trying to figure this out: I have this program that I'm inputting the files in hte current directory which are image files...it spits out 5 line chunks describing the files... filename: (name of file) size: (100 x 200) arbitrary data arbitrary data arbitrary... (4 Replies)
Discussion started by: Infraredskies
4 Replies
Login or Register to Ask a Question