Sponsored Content
Top Forums Shell Programming and Scripting Trouble with alphanumeric Sort Post 302838283 by alister on Monday 29th of July 2013 10:42:27 AM
Old 07-29-2013
Quote:
Originally Posted by newbie2010
I want the alphabetic to take precedence over the numeric. What if I had a file like this:

Code:
cat list |sed 's/.*[^0-9]\([0-9][0-9]*\)[^0-9]*$/\1 &/' | sort -n | cut -d" " -f2-
/vol/zebra_eng_ice_022
/vol/close_eng_ice_0888
/vol/open_eng_ice_0890
/vol/open_eng_ice_0893
/vol/open_eng_ice_08923

I would want zebra to be on the bottom. So if the files are identical in name but different in number I want them sorted numerically. If the files are different alphabetically, I want the alphabetic sort to take precedence. I have tried playing with sort and sed and can't figure this out.
You're solution is nearly complete. You're decorating with the trailing sequence of digits, sorting on that, and then cutting it out before output. The only thing you need is another field for the preceding text. Instead of ...
Code:
022 /vol/zebra_eng_ice_022

... one possibility is to use ...
Code:
/vol/zebra_eng_ice 022 /vol/zebra_eng_ice_022

This extra field consisting of the name without the trailing number is necessary because the trailing number is not part of the name for the purposes of alphabetical sorting.

I would accomplish this using the same tools you've used, but with a different sed approach:
Code:
sed 'h; s/\(.*\)_/\1 /; G; y/\n/ /' | sort -k1,1 -k2n | cut -d' ' -f3-

This code (like yours) assumes that there are never any spaces in a pathname. If this is not true, it can be modified to use a different delimiter.

Regards,
Alister

Last edited by alister; 07-29-2013 at 11:56 AM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sort command - alphanumeric

I have a file I'm trying to sort such as fred1 fred2 fred10 fred11 ... when I sort I get fred1 fred10 fred11 fred2 ... using sort can any give me the syntax to sort this is dict order e.g., (4 Replies)
Discussion started by: gefa
4 Replies

2. UNIX for Dummies Questions & Answers

AlphaNumeric String Operations

Hi :) I am writing a ksh I have a string of general format A12B3456CD78 the string is of variable length the string always ends with numbers (here it is 78.. it can be any number of digits may be 789 or just 7) before these ending numbers are alphabets (here it is CD can even be... (3 Replies)
Discussion started by: lakshmikanth
3 Replies

3. Shell Programming and Scripting

alphanumeric comparision

I have a requirement where I need to check if where r1v07l09ab is a software release. I should always check for this to be true to continue the release deployment because an older release should not be deployed by mistake. I mean only the release greater than the current release should be... (3 Replies)
Discussion started by: rakeshou
3 Replies

4. UNIX for Advanced & Expert Users

alphanumeric Sorting

Hi , I have a requirement where one column have to be sorted (delimiter is pipe) for eg: My input filed is as below 1|FIAT|0010103|23011|01/01/2000|31/12/9999|1.15 2|232|613|1 2|234|743|1 2|234|793|1 2|234|893|1 1|FIAT|0010103|23012|01/01/2000|31/12/9999|1.15 2|230|006|0 2|230|106|0... (9 Replies)
Discussion started by: laxmi131
9 Replies

5. Shell Programming and Scripting

get rid of non-alphanumeric characters

Hi! Could anyone so kindly help me a code to eliminate from a txt file, obtained by collecting and merge several web-page, every word (string) containing non alphabetical, numeric and punctuation character (i.e NON a-zA-Z0-9, underscore and punctuation mark)? Thanks a lot for the help to... (5 Replies)
Discussion started by: mjomba
5 Replies

6. Shell Programming and Scripting

Alphanumeric to integer

Hi folks, I have a value like A12,i could able to change this into integer using typeset as below typeset -i A12 But, I need your advice to change the values like 1A2 or 12A into integer. Thanks in advance. Thanks, Sathish (3 Replies)
Discussion started by: bsathishmca
3 Replies

7. Shell Programming and Scripting

Perl regex and sort trouble

Hi so I have these files where the first thing in them says something along the lines of "This document was accessed 'date' blah blah", I was thinking of a way to extract that date and then sort the files based on that date. My question is how do I get rid of the words in that statement so that... (6 Replies)
Discussion started by: vas28r13
6 Replies

8. UNIX for Dummies Questions & Answers

Parsing alphanumeric variables

Hi All, I have files with a column which has values and ranges, for example colA colB ERD1 3456 ERD2 ERD3 4456 I want to have the following output colA colB colC ERD1 3456 3456 ERD2 526887 526890 ERD3 4456 4456 Being a newbie to... (2 Replies)
Discussion started by: alpesh
2 Replies

9. UNIX for Dummies Questions & Answers

Want to sort a file which contains alphanumeric strings

I want to sort a file which contains alphanumeric string. bash-3.00$ cat abc mtng1so mtng2so mtng11so mtng9so mtng23so mtng7so hstg2so hstg9so hstg1so hstg11so hstg13so bash-3.00$ Want output like this, using one liner. hstg1so (1 Reply)
Discussion started by: Raza Ali
1 Replies

10. Shell Programming and Scripting

Sort two columns with alphanumeric values horizontally

Hi, I have a file like aa bb dmns|860 dmns|756 ee ff aa bb dmns|310 dmns|260 ee ff aa bb dmns|110 dmns|77 ee ff aa bb dmns|756 dmns|860 ee ff aa bb dmns|110 dmns|77 ee ff aa bb dmns|233 dmns|79 ee ff aa bb dmns|79 dmns|233 ee ff I want to sort the values in column3 and column4... (2 Replies)
Discussion started by: sammy777888
2 Replies
mlib_VolumeRayCast_General(3MLIB)			    mediaLib Library Functions				 mlib_VolumeRayCast_General(3MLIB)

NAME
mlib_VolumeRayCast_General, mlib_VolumeRayCast_General_Parallel_Nearest_U8_Bit, mlib_VolumeRayCast_General_Parallel_Nearest_U8_U8, mlib_VolumeRayCast_General_Parallel_Nearest_S16_S16, mlib_VolumeRayCast_General_Parallel_Trilinear_U8_U8, mlib_VolumeRayCast_General_Paral- lel_Trilinear_S16_S16, mlib_VolumeRayCast_General_Divergent_Nearest_U8_Bit, mlib_VolumeRayCast_General_Divergent_Nearest_U8_U8, mlib_Vol- umeRayCast_General_Divergent_Nearest_S16_S16, mlib_VolumeRayCast_General_Divergent_Trilinear_U8_U8, mlib_VolumeRayCast_General_Diver- gent_Trilinear_S16_S16 - cast a ray (or rays) through a 3D data set SYNOPSIS
cc [ flag... ] file... -lmlib [ library... ] #include <mlib.h> mlib_status mlib_VolumeRayCast_General_Parallel_Nearest_U8_Bit( mlib_rays *rays, const mlib_genvolume *vol, void *buffer); mlib_status mlib_VolumeRayCast_General_Parallel_Nearest_U8_U8( mlib_rays *rays, const mlib_genvolume *vol, void *buffer); mlib_status mlib_VolumeRayCast_General_Parallel_Nearest_S16_S16( mlib_rays *rays, const mlib_genvolume *vol, void *buffer); mlib_status mlib_VolumeRayCast_General_Parallel_Trilinear_U8_U8( mlib_rays *rays, const mlib_genvolume *vol, void *buffer); mlib_status mlib_VolumeRayCast_General_Parallel_Trilinear_S16_S16( mlib_rays *rays, const mlib_genvolume *vol, void *buffer); mlib_status mlib_VolumeRayCast_General_Divergent_Nearest_U8_Bit( mlib_rays *rays, const mlib_genvolume *vol, void *buffer); mlib_status mlib_VolumeRayCast_General_Divergent_Nearest_U8_U8( mlib_rays *rays, const mlib_genvolume *vol, void *buffer); mlib_status mlib_VolumeRayCast_General_Divergent_Nearest_S16_S16( mlib_rays *rays, const mlib_genvolume *vol, void *buffer); mlib_status mlib_VolumeRayCast_General_Divergent_Trilinear_U8_U8( mlib_rays *rays, const mlib_genvolume *vol, void *buffer); mlib_status mlib_VolumeRayCast_General_Divergent_Trilinear_S16_S16( mlib_rays *rays, const mlib_genvolume *vol, void *buffer); DESCRIPTION
Each of these functions casts a ray (or rays) through a three-dimensional(3D) data set, then computes and returns the interpolated samples at each step along the way. In trilinear interpolation, the value at point P is computed from its eight surrounding neighbors based on the equation below. P = (1-a)*(1-b)*(1-c)*P0 + a*(1-b)*(1-c)*Px + (1-a)*b*(1-c)*Py + (1-a)*(1-b)*c*Pz + a*b*(1-c)*Pxy + a*(1-b)*c*Pxz + (1-a)*b*c*Pyz + a*b*c*Pxyz where a, b, and c are the fractional parts of the coordinates of point P. The trilinear interpolation is represented by the following figure: Printed copy or docs.sun.com displays a figure that represents the trilinear interpolation. In nearest neighbor operation, the sample value at point P is replaced by the value of the nearest neighbor voxel. PARAMETERS
Each of the functions takes the following arguments: rays Casting rays. vol Volume data that consists of slices. buffer Working buffer. RETURN VALUES
Each of the functions returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Committed | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+ SEE ALSO
mlib_VolumeRayCast_Blocked(3MLIB), attributes(5) SunOS 5.11 2 Mar 2007 mlib_VolumeRayCast_General(3MLIB)
All times are GMT -4. The time now is 07:55 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy