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


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Is it Possible to sort a list of hexadecimal numbers using "sort" command?
# 8  
Old 08-20-2011
Here's how it can be done with perl...
Code:
perl -e '@a=(0x3E80,0x3EF8,0x460);@r=sort {$a <=> $b} @a;printf("%X\n" x @r,@r);'

# 9  
Old 08-21-2011
Quote:
Originally Posted by drl
Hi.

The utility msort might be found in your repository, or, failing that, at MSORT

Best wishes ... cheers, drl
Thanks Drl i will give it a shot.......SmilieSmilie
# 10  
Old 08-21-2011
Hi.
Quote:
Originally Posted by Kesavan
Thanks Drl i will give it a shot.......SmilieSmilie
In some situations, a string representing a hex number may need an adjustment to be recognized, such as adding a prefix "0x" -- that's what you would need to do with msort to get it to recognize hex numbers. If one has a file of "plain" hex numbers, then one solution to use the standard sort might be to do such an adjustment if necessary, add a column to the line in decimal, then sort that intermediate file, and finally eliminate the first column, say with cut.

Here's is a longish script that uses a perl script to do some of that work. The data file is a made-up report of manufacturers in countries that create widgets with a number of employees, all with fictitious hex numbers:
Code:
#!/usr/bin/env bash

# @(#) s4	Demonstrate sort of hex column.

# Utility functions: print-as-echo, print-line-with-visual-space, debug.
# export PATH="/usr/local/bin:/usr/bin:/bin"
pe() { for _i;do printf "%s" "$_i";done; printf "\n"; }
pl() { pe;pe "-----" ;pe "$*"; }
db() { ( printf " db, ";for _i;do printf "%s" "$_i";done;printf "\n" ) >&2 ; }
db() { : ; }
C=$HOME/bin/context && [ -f $C ] && $C perl sort cut

COL=${1-2}
FILE=data4

pl " Input data file $FILE (aligned):"
pe " Country widgets manufacturers employees"
pe
align $FILE

pl " Results, sorted on column $COL, aligned:"
./p1 $COL < $FILE |
tee f1 |
sort -k1,1n |
tee f2 |
cut -f2- |
tee f3 |
align

COL=4
pl " Results, sorted on column $COL, aligned:"
./p1 $COL < $FILE |
tee f1 |
sort -k1,1n |
tee f2 |
cut -f2- |
tee f3 |
align

pl " Addendum, perl script \"p1\" to add the decimal equivalent:"
cat p1

exit 0

producing:
Code:
% ./s4

Environment: LC_ALL = C, LANG = C
(Versions displayed with local utility "version")
OS, ker|rel, machine: Linux, 2.6.26-2-amd64, x86_64
Distribution        : Debian GNU/Linux 5.0.8 (lenny) 
GNU bash 3.2.39
perl 5.10.0
sort (GNU coreutils) 6.10
cut (GNU coreutils) 6.10

-----
 Input data file data4 (aligned):
 Country widgets manufacturers employees

Belarus		f59	26	3a
Gibraltar	b26	2b	25
Iceland		aaf	23	2e
Ireland		426	29	29
Netherlands	d4d	17	5a
Slovakia	91d	2c	42
Spain		556	31	2d
Switzerland	49a	2e	54
Turkey		9e5	15	46
Ukraine		1154	26	4a

-----
 Results, sorted on column 2, aligned:
Ireland		426	29	29
Switzerland	49a	2e	54
Spain		556	31	2d
Slovakia	91d	2c	42
Turkey		9e5	15	46
Iceland		aaf	23	2e
Gibraltar	b26	2b	25
Netherlands	d4d	17	5a
Belarus		f59	26	3a
Ukraine		1154	26	4a

-----
 Results, sorted on column 4, aligned:
Gibraltar	b26	2b	25
Ireland		426	29	29
Spain		556	31	2d
Iceland		aaf	23	2e
Belarus		f59	26	3a
Slovakia	91d	2c	42
Turkey		9e5	15	46
Ukraine		1154	26	4a
Switzerland	49a	2e	54
Netherlands	d4d	17	5a

-----
 Addendum, perl script "p1" to add the decimal equivalent:
#!/usr/bin/env perl

# @(#) p1	Demonstrate extraction of hex column, convert to decimal.

use warnings;
use strict;

my ($debug);
$debug = 1;
$debug = 0;

# Select column (beginning from 0, allow user to specify from 1.
my ($col) = shift || "2";

# Set separator.
my ($sep) = "\t";

# Walk through file.
while (<>) {
  chomp;
  my (@a)  = split /$sep/;
  my ($t1) = $a[ $col - 1 ];
  print " hex column is $col, content before is :$t1:\n" if $debug;
  $t1 =~ s/\s*//g;
  print " hex column is $col, content after  is :$t1:\n" if $debug;
  print hex($t1), "$sep$_\n";
}

exit(0);

The shell script allows a column number to passed in to select the column to be sorted.

The files f1, f2, etc., allow the viewing of intermediate results; they can be eliminated for production use.

This also uses align so that the columns are readable, see https://www.unix.com/unix-dummies-que...ated-form.html for more information about that ... cheers, drl
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Gawk: PROCINFO["sorted_in"] does not sort my numerical array values

Hi, PROCINFO seems to be a great function but I don't manage to make it works. input: B,A,C B B,B As an example, just want to count the occurence of each letter across the input and sort them by decreased order. Wanted output: B 4 A 1 C 1 When I use this command, the PROCINFO... (4 Replies)
Discussion started by: beca123456
4 Replies

2. UNIX for Beginners Questions & Answers

Extract delta records using with "comm" and "sort" commands combination

Hi All, I have 2 pipe delimited files viz., file_old and file_new. I'm trying to compare these 2 files, and extract all the different rows between them into a new_file. comm -3 < sort file_old < sort file_new > new_file I am getting the below error: -ksh: sort: cannot open But if I do... (7 Replies)
Discussion started by: njny
7 Replies

3. UNIX for Dummies Questions & Answers

Sorting files ending in numbers with "sort"

I have a group of files that I need to be sorted by number. I have tried to use the sort command without any luck. ls includes* includes1 includes10 includes11 includes12 includes2 includes3 includes4 includes5 includes6 includes7 includes8 includes9 I have tried ls includes*... (6 Replies)
Discussion started by: newbie2010
6 Replies

4. UNIX for Dummies Questions & Answers

New to Unix command line and have a question about the "sort" command

I am going through the Unix Made Easy second edition book by John Muster. So far it's been very informative and I can tell it may be a bit out of date. In one of the exercises it talks about the "sort" command and using it to sort column's of data etc. The "sort" command has changed a bit and... (1 Reply)
Discussion started by: budfoxcat
1 Replies

5. Shell Programming and Scripting

sort, columns, no result! can I print files of "planes"?

hi, please can I ask you for some help? I have data from 3D situation, x y z value I'd like to use gnuplot to generate maps of the value in the planes z=0 to z=1 for example, my file looks like -0,012 0,0060 0,0 0,13972813076023477 -0,012 0,0064319163 4,2894483E-4 ... (1 Reply)
Discussion started by: kocour
1 Replies

6. Shell Programming and Scripting

Meaning of "b" modifier in "sort" command

I need to sort the following file by the rhdiskpower devices in the last column: Total_MB Free_MB OS_MB Name Failgroup Library Label UDID Product Redund Path 1024 851 1024 OCRVOT1_0000 OCRVOT1_0000 System UNKNOWN ... (3 Replies)
Discussion started by: wjssj
3 Replies

7. 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

8. Solaris

"mail" command sort by date

Hello experts, I am using SunFire T200. When I start reading the mail with "mail" command it comes older mail first. From MAILER-DAEMON Sat Mar 28 06:02:48 2009 Return-Path: <MAILER-DAEMON@emarn1> Received: from localhost (localhost) .... .... I want to see the most recent mail... (1 Reply)
Discussion started by: thepurple
1 Replies

9. UNIX for Dummies Questions & Answers

Problems with "sort" command

It seems our administrators had installed the version of the "sort" command not having the -M option. Does anyone have the source code for this routine? I need to be able to sort on month comparison: e.g. "sudo at -l | sort -k3M,5" (1 Reply)
Discussion started by: superdelic
1 Replies

10. UNIX for Dummies Questions & Answers

i don't understand the "sort" command

i have been trying to understand this chapter titled "Searching for Files and Text" for a few weeks now. unfortunately, this chapter is one of those things, that no matter how hard you try and how long you try for, you are incapable of understanding (at least in my case) this entire chapter,... (2 Replies)
Discussion started by: xyyz
2 Replies
Login or Register to Ask a Question