sort question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sort question
# 1  
Old 02-13-2009
sort question

Hi all.

HPUX - posix shell - script question

Here's my data:
f1 f2 f3 f4 f5 f6
|02/12/09|12:33PM|3|Oceanview |OVT #1| VISA/MC
|02/12/09|12:14PM|3|Oceanview |OVT #1| VISA/MC
|02/12/09|09:13AM|4|Oceanview |OVT #1| VISA/MC
|02/12/09|12:40PM|3|Oceanview |OVT #1| VISA/MC
|02/12/09|01:11PM|3|Oceanview |OVT #2| VISA/MC
|02/12/09|01:08AM|3|Oceanview |OVT #2| VISA/MC
|02/12/09|02:45PM|3|Oceanview |OVT #2| VISA/MC

I need to keep the data sorted by f5..how can I sub sort this by time (f2)?

TIA!!!!!
# 2  
Old 02-13-2009
Code:
sort -t\| -k5 -k3.6 -k3.1n

# 3  
Old 02-18-2009
Thanks

the -k5 and -k3.6 work perfectly.

not sure how the -k3.1n is going to work in that the "first" time would be 12:00AM and the "last" time would be 12:59PM. Doesn't -k3.1n mean first character 0 to 9?

TIA!!!!
# 4  
Old 02-18-2009
whoops

I mean "last" time would be 11:59PM.
# 5  
Old 02-18-2009
In cases like these, you'll need to compute a sort-key field then sort by that.

Something like this:

Code:
cat << EOF |
|02/12/09|12:33PM|3|Oceanview |OVT #1| VISA/MC
|02/12/09|12:14PM|3|Oceanview |OVT #1| VISA/MC
|02/12/09|09:13AM|4|Oceanview |OVT #1| VISA/MC
|02/12/09|12:40PM|3|Oceanview |OVT #1| VISA/MC
|02/12/09|01:11PM|3|Oceanview |OVT #2| VISA/MC
|02/12/09|01:08AM|3|Oceanview |OVT #2| VISA/MC
|02/12/09|02:45PM|3|Oceanview |OVT #2| VISA/MC
EOF
nawk -F\| '

  function time_convert()
  {

  hours = substr( $3, 1, 2 );
  hours *= 60;

  minutes = substr( $3, 4, 2 );

  meridian = substr( $3, 6, 1 );

  if ( meridan == "P" ){
    hours += 12 * 60;
    }

  time_key = hours + minutes;

  return;
  }


  {
  time_convert();
  print time_key, $0;
  }' |

  sort -n |
  cut -d\| -f2-


Last edited by quirkasaurus; 02-18-2009 at 02:28 PM.. Reason: remove sort-key field after sorting.... ugh one more mistake fixed.
# 6  
Old 02-18-2009
btw -- cj -- nice solution! i didn't notice (duh) that you could sort on the A then the P.
# 7  
Old 02-24-2009
ok, here's my example data

|02/23/09|06:56PM|3|Plaza Cafe|Plaza2| | |VISA/MC Student | | |Y| | 7.50
|02/23/09|07:05PM|3|C/Ventana |Vent#2| | |VISA/MC Student | | |Y| | 15.77
|02/23/09|07:07PM|3|Plaza Cafe|Plaza2| | |VISA/MC Staff | | |Y| | 7.49
|02/23/09|07:15PM|3|FoodWorx10|Worx#2| | |VISA/MC Student | | |Y| | 4.50
|02/23/09|07:18PM|3|SierraSum |West 2| | |VISA/MC Student | | |Y| | 11.90
|02/23/09|07:28PM|1|Earl's |E/PSou| | |VISA/MC Student | | |Y| | 2.84
|02/23/09|07:42PM|4|Oceanview |OVT #1| | |VISA/MC Student | | |Y| | 12.20

sort -t"|" -k6 test.data > test.data1

|02/23/09|07:28PM|1|Earl's |E/PSou| | |VISA/MC Student | | |Y| | 2.84
|02/23/09|07:42PM|4|Oceanview |OVT #1| | |VISA/MC Student | | |Y| | 12.20
|02/23/09|07:07PM|3|Plaza Cafe|Plaza2| | |VISA/MC Staff | | |Y| | 7.49
|02/23/09|06:56PM|3|Plaza Cafe|Plaza2| | |VISA/MC Student | | |Y| | 7.50
|02/23/09|07:05PM|3|C/Ventana |Vent#2| | |VISA/MC Student | | |Y| | 15.77
|02/23/09|07:18PM|3|SierraSum |West 2| | |VISA/MC Student | | |Y| | 11.90
|02/23/09|07:15PM|3|FoodWorx10|Worx#2| | |VISA/MC Student | | |Y| | 4.50

perfect, now add second key

sort -t "|" -k6 -k3n test.data > test.data2

|02/23/09|07:28PM|1|Earl's |E/PSou| | |VISA/MC Student | | |Y| | 2.84
|02/23/09|07:42PM|4|Oceanview |OVT #1| | |VISA/MC Student | | |Y| | 12.20
|02/23/09|07:07PM|3|Plaza Cafe|Plaza2| | |VISA/MC Staff | | |Y| | 7.49
|02/23/09|06:56PM|3|Plaza Cafe|Plaza2| | |VISA/MC Student | | |Y| | 7.50
|02/23/09|07:05PM|3|C/Ventana |Vent#2| | |VISA/MC Student | | |Y| | 15.77
|02/23/09|07:18PM|3|SierraSum |West 2| | |VISA/MC Student | | |Y| | 11.90
|02/23/09|07:15PM|3|FoodWorx10|Worx#2| | |VISA/MC Student | | |Y| | 4.50

Doesn't seem to be responding to -k3...I've tried -k3 -k3n -k3.1,2 -k3.1,2n

TIA!!!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Sort question

Have a text file containing 4 columns, the 4th column is sorted numerically in descending order. The 2nd column is alpha text. Been able to get the 4th column to sort in descending order. The 2nd column sorts correctly but it's also in reverse. Would like to be able to keep the 4th column sort... (8 Replies)
Discussion started by: jimmyf
8 Replies

2. Shell Programming and Scripting

Sort command question

I have a question about what the sort command is doing. Here is some sample data: 348201310013RVE 2 600201310013GFJ 70 3302013020101NS 40 600201309013GFJ 70 The sort command that is running is as follows: sort -k 1,3 -k 12,4 input.txt > output.txt ... (6 Replies)
Discussion started by: Drenhead
6 Replies

3. UNIX for Dummies Questions & Answers

Sort command question

I have a file like this: /vol/eng_app_0103z /vol/eng_app_0103z /vol/eng_app_0120z /vol/eng_app_0126z /vol/eng_app_0144z /vol/eng_app_0150z /vol/eng_app_0154z /vol/eng_app_01551z /vol/eng_app_01552z /vol/eng_app_0155z /vol/eng_app_0164z /vol/eng_app_0199zWhen I use the sort command... (3 Replies)
Discussion started by: newbie2010
3 Replies

4. Shell Programming and Scripting

Sort question.

Hi Guys, I have a file to be sorted and uniq with the following format. S00001002|01|20021231 S00001002|01|20011031 S00001006|01|20120430 S00001006|01|20111231 S00001006|01|20111031 S00001006|01|20110831 S00001006|01|20110731 S00001006|01|20101231 S00001006|01|20091231... (5 Replies)
Discussion started by: nua7
5 Replies

5. Shell Programming and Scripting

sort | uniq question

Hello, I have a large data file: 1234 8888 bbb 2745 8888 bbb 9489 8888 bbb 1234 8888 aaa 4838 8888 aaa 3977 8888 aaa I need to remove duplicate lines (where the first column is the duplicate). I have been using: sort file.txt | uniq -w4 > newfile.txt However, it seems to keep the... (11 Replies)
Discussion started by: palex
11 Replies

6. Shell Programming and Scripting

sort question

Hi all. Is there a way that I can use the sort command too sort the following field by earliest time (12:00AM) to latest time (11:59PM)? 07:12PM 07:53PM 07:54PM 08:07PM 10:15AM 10:21AM TIA!!!!!! (1 Reply)
Discussion started by: lyoncc
1 Replies

7. UNIX for Dummies Questions & Answers

UNIX Sort question

I was trying to check for the sort of some columns (say 1-10) of particular file. Now, by default, the Unix sort uses as a separator whitespace (e.g. if you have 'foo bar' then it separates it into 'foo' and 'bar' to use as keys) Now, I know which particular columns I want to use as the sort... (1 Reply)
Discussion started by: rev.meister
1 Replies

8. UNIX for Dummies Questions & Answers

SORT question

I'm looking for a sort command that will sort by zip code first then by last name. (zip code is the last field, last name is first field) data file looks like this. Hope Bob 1234 Main ST. Colorado Springs, CO 80920 I was thinking along the lines of: sort -k9n address.data //for the... (2 Replies)
Discussion started by: ssgatbliss
2 Replies

9. UNIX for Dummies Questions & Answers

Sort/Grep Question

Hello all, I have a test file that has the format: ..... O 3.694950 -.895050 1.480000 O 5.485050 .895050 1.480000 Ti -4.590000 4.590000 2.960000 Ti -2.295000 ... (5 Replies)
Discussion started by: aarondesk
5 Replies

10. UNIX for Dummies Questions & Answers

Sort Question

M 47 HIS:LOT 32 DUTY 2 MIKE, FINISHED MIKE ACTIVE STATUS 23TASK YES GOOD 100TASK NO GOOD ======================================== M 47 HIS:LOT 1 DUTY 1 MIKE, FINISHED MIKE ACTIVE STATUS 23TASK YES GOOD ... (7 Replies)
Discussion started by: bobo
7 Replies
Login or Register to Ask a Question