SORT order in Unix


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting SORT order in Unix
# 1  
Old 11-23-2005
Question SORT order in Unix

I am converting mainframes JCL to be used in shell on a one to one basis... when i use the sort command unix does ascii sort as a result which numbers are first followed by charecters in the Ascending sort ... but themainframes uses the EBCDIC as result gives the charecters followed by numbers in ascending order... what can be done in unix to get the same order as in mainframes?? Smilie
# 2  
Old 11-23-2005
You can look at the -n and -r options but since I don't have a mainframe to test on, I don't know what you are truely looking for. Can you post a sample of input and output expected?
# 3  
Old 11-24-2005
here is the sample :

123456
ABCDEF
245678
abcdef


the unix output:
123456
245678
ABCDEF
abcdef

the expected output:
ABCDEF
abcdef
123456
245678

can u get a code snippet for this??
# 4  
Old 11-24-2005
Well, it may seem a bit lame, but if it's only alphanumeric data a small script would accomplish this, along the lines of:-

#!/bin/ksh

grep '[A-Z]' $1 |sort
grep '[a-z]' $1 |sort
grep '[0-9]' $1 sort
# 5  
Old 11-24-2005
An even simpler

$ sort -n inputfile

should take care of it.
# 6  
Old 11-25-2005
But this wont work if my input data can be like this...
A1234a
c2345a
B1234a
a1235a
c1235c
b1235b

i have got a code in perl... but cud not make out wat the hash sort means.. can any1 help?

#!/bin/perl
my @order=("a", "b", "c", "1", "2", "3", "A", "B", "C","z"); # Order Characters; Entire EBCDIC character set needs to be defined here

my %sorthash; # For quicker sorting the sub initiliaze() puts the list @order into a hash.
my @strings=("ABC123", "123ABC", "abcABC", "ABCabc", "abc123", "123abc","zzz123"); # Sort List

initialize(); # Puts the ordering into a hash of the format ("a" => 1, "A" => 2, "\342" => 3, "\302" => 4, ...)


my $string;
foreach $string (sort @strings) { # Normal way of sorting in perl, but sort now calls "mysort" for getting the right ordering
print $string."\n";
}

sub mysort { # Compares two elements x and y
my $word1=$a;
my $word2=$b;


return 0 if ($word1 eq $word2);


my @word1=split("", $word1);
my @word2=split("", $word2);


while ((@word1 > 0) and (@word2 > 0)) {
my $char1=shift @word1;
my $char2=shift @word2;

my $compare=($sorthash{$char2}<=>$sorthash{$char1});

return $compare if ($compare != 0);
}

if (@word1) {
return 1;
} else {
return -1;
}
}

sub initialize {
my $i=1;
my $entry;
foreach $entry (@order) {
$sorthash{$entry}=$i;
$i++;
}
}

Smilie
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 in chronological order

I am trying to sort a log file in chronological order to identify which ones did not process and still have an old (probably yesterday's) date. This is a sample of the file:flatf 010140 flatf Thu May 10 22:22:11 CST 2018 flats finished flatf 010142 flatf Thu May 10 22:31:25 CST 2018 flats... (4 Replies)
Discussion started by: wbport
4 Replies

2. Shell Programming and Scripting

Sort by specific order?

Hello all I was wondering if someone has an idea how to sort by a specific order, let's say by a specific alphabet containing only 4 letters like (d,s,a,p) instead of (a,b,c....z) ?? Cheers! (6 Replies)
Discussion started by: cabrao
6 Replies

3. Shell Programming and Scripting

Sort numeric order

Hi I am using this cat substitutionFeats.txt | gawk '{$0=gensub(/\t/,"blabla",1);print}' | gawk '{print length, $0}' | sort -n | sort -r and the "sort -n" command doesn't work as expected: it leads to a wrong ordering: 64 Adjustable cuffs 64 Abrasion- 64 Abrasion pas 647 Sanitized 647... (4 Replies)
Discussion started by: louisJ
4 Replies

4. UNIX for Dummies Questions & Answers

sort by column or specific order

Hi, I need to sort it by column or need it in a specific order... input is ===== uid=shashi country= india region =0 ph=0 uid= jon region= asia ph= 12345 country=0 uid = man country= india ph=2222 region=0 uid= neera region= asia ph= 125 country=0 output should be uid=shashi ... (1 Reply)
Discussion started by: hegdeshashi
1 Replies

5. Shell Programming and Scripting

sort order HP UX / SUN Solaris

Hi! simple 'sort' produces a different output on SUN OS than on HP. Lines with empty fields inside the key are sorted at the beginning on SUN; on HP they are at the end. i.e SUN 03|ref|168126310|702578641|||||||||||||| 03|ref|168126310|702578641|DEL| 03|ref|168126310|702578641|FW|... (5 Replies)
Discussion started by: strolchFX
5 Replies

6. UNIX for Dummies Questions & Answers

sort -reverse order

I need to sort the particular column only in reverse order how i can give it.. if i give the -r option the whole file is getting sorted in reverse order. 1st 2nd col 3rd C col 4th col 5th col ------------------------------------------- C... (7 Replies)
Discussion started by: sivakumar.rj
7 Replies

7. Shell Programming and Scripting

alphabetical order with out using sort command

hai, how can i sort a file alphabetically without using sort command (6 Replies)
Discussion started by: rahul801
6 Replies

8. UNIX for Dummies Questions & Answers

replacing characters in order to sort

hi, i want to rename all the file names in order so that they can be sorted later. For example, my filenames are like path\1, path\2...path\10, path\11. But when I sort them, it sorts by the first number, so path\1 gets sorted with path\10. I'm guessing the best way to do this is to rename... (5 Replies)
Discussion started by: gammaman
5 Replies

9. UNIX for Dummies Questions & Answers

Sort - original order .... Help

Hi all, I want to sort a file based on the number in the 9th column I've tried both of the following commands sort -k 9,9n file_to_sort.dat sort +8 -n file_to_sort.dat both resulting in the same output which does sort col 9 nummerically but it doesn't output the lines in the original... (2 Replies)
Discussion started by: olga
2 Replies

10. UNIX for Dummies Questions & Answers

Sort / ascending order

What's the command to sort a file in ascending order and redirect the output to another file? Thanks!!!!!! (1 Reply)
Discussion started by: gyik
1 Replies
Login or Register to Ask a Question