sort command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sort command
# 1  
Old 05-13-2011
sort command

i/p file
Quote:
123|basdf|asd|nxs
145|fdf|awe
o/p file
Quote:
123|asd|basdf|nxs
145|awe|fdf
# 2  
Old 05-13-2011
Code:
perl -F"\|" -alne '$,="|";print sort {$a cmp $b} @F' file

# 3  
Old 05-13-2011
Code:
#  nawk -F"|" '{OFS=FS;t=$2;$2=$3;$3=t;print}' infile
123|asd|basdf|nxs
145|awe|fdf

# 4  
Old 05-13-2011
Quote:
Originally Posted by Tytalus
Code:
#  nawk -F"|" '{OFS=FS;t=$2;$2=$3;$3=t;print}' infile
123|asd|basdf|nxs
145|awe|fdf

I think you are just swaping the field 2 and 3. But the need here is to sort the fields in each row. I am sorry if I didn't understand your script.
# 5  
Old 05-13-2011
Sort should come then pipe to awk for formating.
Code:
sort -t"|" -k 3 infile | awk -F"|" '{OFS=FS;t=$2;$2=$3;$3=t;print}'

# 6  
Old 05-13-2011
Quote:
Originally Posted by Peasant
Sort should come then pipe to awk for formating.
Code:
sort -t"|" -k 3 infile | awk -F"|" '{OFS=FS;t=$2;$2=$3;$3=t;print}'

The o/p wants each line sorted using the US ascii character set as the collating sequence...not columns 2 and 3 swapped and if you look at the ascii table digits precede uppercase which precede lower case alphabets and here's an awk script to try out...
Code:
awk '{
   n=split($0, x, "\|")
   for (i=1; i<n; i++)
      for (j=1; j<=n-i; j++)
         if (x[j] > x[j+1]) {
            t = x[j]
            x[j] = x[j+1]
            x[j+1] = t 
         }
    for (k=1; k<=n; k++)
       printf("%s%s", x[k], k<n?"|":"\n")
}' file

Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help to sort out... Possible use of sort command

I have an input like 4.3.6.66 4.3.6.67 4.3.6.70 4.3.6.25 4.3.6.15 4.3.6.54 4.3.6.44 4.3.6.34 4.3.6.24 4.3.6.14 4.3.6.53 4.3.6.43 4.3.6.49 4.3.6.33 4.3.6.52 4.3.6.19 4.3.6.58 4.3.6.42 (5 Replies)
Discussion started by: dnam9917
5 Replies

2. Shell Programming and Scripting

Help with sort command

I have a file with the following content:- 181268525,0640613864,B,113,22-dec-2011 14:12:08, 181268525,0640613864,C,113,25-dec-2011 14:18:50, 181268525,0640613864,L,113,26-dec-2011 14:07:46, 181268525,0640613864,X,113,01-jan-2012 16:57:45, 181268525,0640613864,X,113,04-jan-2012 14:13:27,... (3 Replies)
Discussion started by: Yoda
3 Replies

3. Shell Programming and Scripting

Is it Possible to sort a list of hexadecimal numbers using "sort" command?

Hello Everybody :) !!!. i have question in mind, is it possible to sort a list of hexadecimal numbers using "sort" command? (9 Replies)
Discussion started by: Kesavan
9 Replies

4. Homework & Coursework Questions

Sort command

I have file ipaddress.txt 192.168.1.25 127.3.9.12 192.168.12.1 127.21.2.3 127.92.80.6 192.168.4.5 I want to sort as 127.3.9.12 127.21.2.3 127.92.80.6 192.168.1.25 192.168.12.1 192.168.4.5 So what sort command do I have to use. (1 Reply)
Discussion started by: RiderOnsky
1 Replies

5. Shell Programming and Scripting

How to Sort Floating Numbers Using the Sort Command?

Hi to all. I'm trying to sort this with the Unix command sort. user1:12345678:3.5:2.5:8:1:2:3 user2:12345679:4.5:3.5:8:1:3:2 user3:12345687:5.5:2.5:6:1:3:2 user4:12345670:5.5:2.5:5:3:2:1 user5:12345671:2.5:5.5:7:2:3:1 I need to get this: user3:12345687:5.5:2.5:6:1:3:2... (7 Replies)
Discussion started by: daniel.gbaena
7 Replies

6. Shell Programming and Scripting

Need help with sort command

Hi i have a file containing ip addresses and want to sort those IP addresses in the ascending order. file (match.txt) contents are: 192.168.0.100 192.168.0.16 192.168.0.10 192.168.0.23 192.168.0.2 192.168.0.3 192.168.0.1 192.168.0.222 i tried: sort -n match.txt output is :... (3 Replies)
Discussion started by: manmeet
3 Replies

7. UNIX for Dummies Questions & Answers

sort command...

Hi IŽd like to get a few explanations about how the sort command works when cascading the options. cscyabl@comet:(develop)> more file 2:A2 2:A1 5:A2 5:A2 10:A1 cscyabl@comet:(develop)> sort -n -u file 2:A1 5:A2 10:A1 cscyabl@comet:(develop)> sort -u -n file 2:A1 5:A2 10:A1... (8 Replies)
Discussion started by: Indalecio
8 Replies

8. UNIX for Dummies Questions & Answers

sort command

Hi, I am going to sort a huge flat file using sort command, this file is about 36 million lines, 179 fields delimitered by Ctrl B (002). eg. 1^B198709..... 17^B200301.... 3^B196511.... ..... I want this file being sorted by the first field, the result is like : 1^B198709........ (2 Replies)
Discussion started by: xli
2 Replies

9. UNIX for Dummies Questions & Answers

Help with the Sort command

Can someone please tell me how to sort a file, based on a particular position within the file? I have a line sequential file that is 152 bytes per record, in which i need to sort the file based on the numeric data in positions 142-152. I have done the "man sort" command and see the -k option... (1 Reply)
Discussion started by: rjjenkin
1 Replies
Login or Register to Ask a Question