Location: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Posts: 2,288
Thanks Given: 430
Thanked 480 Times in 395 Posts
Hi.
Quote:
Originally Posted by Kesavan
Thanks Drl i will give it a shot.......
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.
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)