Sponsored Content
Top Forums Shell Programming and Scripting How To Sort Array of Hashes ?? Post 71239 by cbkihong on Monday 9th of May 2005 09:31:36 AM
Old 05-09-2005
Perl's sort function is immensely powerful (and somewhat difficult to explain) that lets you sort in any way you desire. Theoretically you can put the condition (the comparator) in the sort {} block to generate a custom ordering for your case. But your question is not precise. And you cannot simply say keep 32 and 18 together, because what should be the ordering of other array items with respect to 32 and 18, respectively? And the order of 32 and 18? If these questions are not defined, the condition in the sort {} block will not be accurate to establish a total ordering, and the sorted results will then be non-deterministic (i.e. simply wrong).

Mathematically speaking, given a total of n items to sort, you need to define all possible permutations of any two items in the block, i.e. n * n, and the ordering should be absolutely consistent. So, if you define a certain item x(i) -> 32 and 32 -> 18, the condition in the block should never, ever, generate the order 18 -> x(i), or any other items preceding x(i).

In general, if a given sort order is not intuitive, and you cannot specify an algorithm to establish the total ordering, I will suggest getting the normally sorted results and manipulate the rest yourself with another array. For this, I guess you should try to do this yourself.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Array split function & hashes

Hi, If this is the array that is being returned to me: How would I get the values for each of the 3 records? This works for 1 Record: foreach $item (@results) { ($id, $id2, $name, $date, $email) = split(/\|/, $item, 5); print "$name<br>"; } (2 Replies)
Discussion started by: novera
2 Replies

2. UNIX for Dummies Questions & Answers

Problem with sort-of array in SH

Hello to everyone! I'm really new in shell scripting and I'm experiencing a very odd problem. This is my first post in this forum, hope you can help! I know that declaring arrays in Bourne Shell is impossible. But this is where I start having problems - system administrator did not install... (8 Replies)
Discussion started by: onstock
8 Replies

3. Shell Programming and Scripting

perl sort array by field

Hi Everyone, Any simple code can simplify the code below, please advice. Thanks # cat 2.pl #!/usr/bin/perl use warnings; use strict; my @aaaaa = <DATA>; my @uids; foreach (@aaaaa) { my @ccccc = split (",", $_); push @uids, $ccccc;... (3 Replies)
Discussion started by: jimmy_y
3 Replies

4. Shell Programming and Scripting

sort piping to awk array - help please

Hi I'm just learning programming and need some help. I've taken a data file which has a list of numbers eg: 3 5 32 533 13 2 And I've used sort -n and to sort and then piped it to awk to arrange into an array. #!/bin/sh sort -n data.txt | awk ' { array=$1 } (4 Replies)
Discussion started by: EL_Chemso
4 Replies

5. Shell Programming and Scripting

Creating Hashes of Hashes of Array

Hi folks, I have a structure as mentioned below in a configuration file. <Component> Comp1: { item1:data,someUniqueAttribute; item2:data,someUniqueAttribute, } Comp2: { item3:data,someUniqueAttribute; ... (1 Reply)
Discussion started by: ckv84
1 Replies

6. Shell Programming and Scripting

awk array sort

I have a file as below Input File: 5/11/2012, dir1, 134 5/11/2012, dir2, 2341 5/11/2012, dir3, 2134 5/11/2012, dir4, 2334 5/12/2012, dir1, 234 5/12/2012, dir2, 2341 5/12/2012, dir3, 2334 5/13/2012, dir1, 234 5/13/2012, dir2, 2341 5/13/2012, dir3, 2334 5/13/2012, dir4, 21134 Now... (6 Replies)
Discussion started by: chakrapani
6 Replies

7. Shell Programming and Scripting

Perl : array of hashes help

Hi, I have array of hashes and each key has array like below. @array1 = ( { 'url' => , 'bill' => }, { 'url' => , 'bill' => }, { 'url' => , ... (0 Replies)
Discussion started by: ragilla
0 Replies

8. Shell Programming and Scripting

Perl hash of hashes anonymous array

Hello experts. I'm having problems with a snippet of code. I was hoping to get help/advice to correct. A file that this script parses has changed to the point where I can no longer use a scalar, it looks as though I need to create an array for a hash of hashes below. The first output of... (1 Reply)
Discussion started by: timj123
1 Replies

9. UNIX for Beginners Questions & Answers

Array length: ls and sort

Hi there, I'm listing files and sorting them. When I try to get length of array variable in which these files are stored I get 1 as value. That's weird. files_info="$(find $input_dir -name "*_CHR$i.info" | sort )" printf ${#files_info}"\n" #print length #--loop through... (6 Replies)
Discussion started by: genome
6 Replies

10. Shell Programming and Scripting

Sort multidimensional Array

Hello I have a problem. I create a Multidimensional Array Like this: ENTRY="$kunnum-$host" ENTRY="$host" ENTRY="# $3" for key in "${!ENTRY}"; do ENTRIES=${ENTRY} # INDEX=IP(5) donedeclare -p declare -A ENTRIES=(="unas15533" ="unas" ="# RDP-Terminal 2"... (12 Replies)
Discussion started by: Marti95
12 Replies
XmScaleSetTicks(library call)											     XmScaleSetTicks(library call)

NAME
XmScaleSetTicks -- A Scale function that controls tick marks SYNOPSIS
#include <Xm/Scale.h> void XmScaleSetTicks( Widget scale, int big_every, Cardinal num_medium, Cardinal num_small, Dimension size_big, Dimension size_medium, Dimension size_small); DESCRIPTION
XmScaleSetTicks controls the number, location, and size of the tick marks on a Scale. Each tick mark is a SeparatorGadget oriented perpen- dicular to the Scale's orientation. For example, if the Scale is oriented horizontally, the tick marks will be oriented vertically. If you specify tick marks for a Scale and then change the Scale's orientation, you will have to do the following: o Remove all the tick marks. To remove tick marks from a Scale, you must destroy (with XtDestroyChildren) the SeparatorGadget tick marks. The first two children of a Scale are its title and scroll bar, and all additional children are tick marks. o Recreate the tick marks by calling XmScaleSetTicks. scale Specifies the Scale widget ID that is getting the tick marks. big_every Specifies the number of scale values between big ticks. num_medium Specifies the number of medium ticks between big values. num_small Specifies the number of small ticks between medium values. size_big Specifies the size (either width or height) of the big ticks. size_medium Specifies the size (either width or height) of the medium ticks. size_small Specifies the size (either width or height) of the small ticks. For a complete definition of Scale and its associated resources, see XmScale(3). RELATED
XmScale(3). XmScaleSetTicks(library call)
All times are GMT -4. The time now is 09:25 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy