Unix/Linux Go Back    


UNIX for Dummies Questions & Answers This forum is closed for new posts. Please post beginner questions to learn unix and learn linux in this forum UNIX for Beginners Questions & Answers

Sort command in one column and not effect to another column

UNIX for Dummies Questions & Answers


 
 
Thread Tools Search this Thread Display Modes
    #1  
Old Unix and Linux 03-22-2013
GeodusT GeodusT is offline
Registered User
 
Join Date: May 2011
Last Activity: 24 March 2013, 10:47 PM EDT
Posts: 6
Thanks: 5
Thanked 0 Times in 0 Posts
Sort command in one column and not effect to another column

If my data is numerical :


Code:
1 = 101
2 = 102
3 = 104
4 = 104
7 = 103
8 = 103
9 = 105

I need the result like below:


Code:
1 = 101
2 = 102
3 = 103
4 = 103
7 = 104
8 = 104
9 = 105


I just want to sort the data in column 3 only doesn't another column change.

How about the command I should using?

Thank you.

Last edited by radoulov; 03-22-2013 at 07:39 AM..
Sponsored Links
    #2  
Old Unix and Linux 03-22-2013
jim mcnamara jim mcnamara is online now Forum Staff  
...@...
 
Join Date: Feb 2004
Last Activity: 27 August 2016, 7:33 AM EDT
Location: NM
Posts: 10,803
Thanks: 438
Thanked 955 Times in 886 Posts
Try:

Code:
awk '{print $2, $3}' inputfile | sort | nl > newfile

Edit: forgot field 3

Last edited by jim mcnamara; 03-22-2013 at 08:01 AM..
The Following User Says Thank You to jim mcnamara For This Useful Post:
GeodusT (03-22-2013)
Sponsored Links
    #3  
Old Unix and Linux 03-22-2013
radoulov's Unix or Linux Image
radoulov radoulov is offline Forum Advisor  
Forum Adviser
 
Join Date: Jan 2007
Last Activity: 16 December 2015, 5:59 AM EST
Location: Варна, България / Milano, Italia
Posts: 5,690
Thanks: 184
Thanked 628 Times in 585 Posts

Code:
perl -F'\s*=\s*' -lane'
  push @f, $F[0];
  push @s, $F[1];
  END {
    @ss = sort { $a <=> $b } @s;
    for (sort { $a <=> $b } @f) {
      printf "%s = %s\n", $_, shift @ss 
      }    
    }' infile

Or (if your shell supports process substitution):


Code:
paste -d= <(cut -d= -f1 infile | sort -n) <(cut -d= -f2 infile | sort -n)


Last edited by radoulov; 03-22-2013 at 08:09 AM..
The Following User Says Thank You to radoulov For This Useful Post:
GeodusT (03-22-2013)
    #4  
Old Unix and Linux 03-22-2013
GeodusT GeodusT is offline
Registered User
 
Join Date: May 2011
Last Activity: 24 March 2013, 10:47 PM EDT
Posts: 6
Thanks: 5
Thanked 0 Times in 0 Posts
@JIM code doesn't work. thank you

@Radoulov your code is work. thank you
Sponsored Links
    #5  
Old Unix and Linux 03-22-2013
jim mcnamara jim mcnamara is online now Forum Staff  
...@...
 
Join Date: Feb 2004
Last Activity: 27 August 2016, 7:33 AM EDT
Location: NM
Posts: 10,803
Thanks: 438
Thanked 955 Times in 886 Posts
Works now. Please see the edit to the answer.
Sponsored Links
 

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Linux More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
awk command to print only selected rows in a particular column specified by column name ks_reddy Shell Programming and Scripting 4 09-01-2012 11:32 AM
command for converting 4 column data to 1 column rpf Shell Programming and Scripting 5 12-12-2011 10:40 AM
sort on second column only based on first column malcomex999 Shell Programming and Scripting 7 03-15-2010 10:46 AM
Question about sort specific column and print other column at the same time ! patrick87 Shell Programming and Scripting 3 10-07-2009 06:43 AM
Sort by the third column with +n command bobo UNIX for Dummies Questions & Answers 2 08-23-2006 04:10 PM



All times are GMT -4. The time now is 07:49 AM.