02-15-2008
perl sorting
I have many files that I need to sort each week. I know how to do in Unix, but for this task it appears best to do native inside an existing perl program. So, simplified, I have a file similar to the following:
Joe_________12_Main_St__A001________LX
Benny_______5_Spring____A002________LX
Will________2_A_St______A003________LX
Carl________15_X_Way____A004________LX
Fixed record format with
name in position 1
address in position 11
unique id in position 21
code in position 31
So, I already have the file open and about to close in the existing perl script - called $fileot1. I will close the file, and want to sort it.
How would I then write a few lines to sort the file descending on column 21? I have read the
@sorted = sort { lc($a) cmp lc($b) } @not_sorted
but do not know where to begin to define the parameters.
Example code is what I am looking for. Thanks.
(Sometimes, one can only understand a concept after seeing a solution.)
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
i'm halfway into my script and realize i may need to use an associative array (a hash, i guess they are called in Perl). i'm fairly new to Perl and don't know how to use them correctly.
i have some files in a directory. each file contains a number in a specific place in it's header. what i would... (4 Replies)
Discussion started by: quantumechanix
4 Replies
2. Shell Programming and Scripting
Hello,
I have a page where multiple fields and their values are displayed. But I am able to sort only a few fields. When I looked into the issue, it is seen that the for each row of info , an unique id is generated and id.txt is generated and saved. Only those fields which are inside that id.txt... (3 Replies)
Discussion started by: eagercyber
3 Replies
3. Shell Programming and Scripting
I have an array full of string values that need to be sorted, but if a value starts with (regex) 0^ it should be at the beginning of the array. Otherwise the array should be sorted normally using ascii sort.
Please help me create the sub to pass to the sort function. (7 Replies)
Discussion started by: dangral
7 Replies
4. Shell Programming and Scripting
Hi All,
I have an array in perl as @match = (201001,201002,201001,201002);
I am trying to sort this array as
@match = sort(@match);
print "@match";
I dont see the output sorted any answers
I also tried another way, but still the results are not sorted
foreach my $match (sort { $a... (2 Replies)
Discussion started by: bsdeepu
2 Replies
5. Shell Programming and Scripting
Hi,
I have a file in this format:
a b c d e
a b c d e
a b c d e
i need perl script to sort 2nd column in alphabatical order
The script i use is
#!/usr/bin/perl
my @words=<>;
foreach(sort mysort @words) {
print; (4 Replies)
Discussion started by: Learnerabc
4 Replies
6. Shell Programming and Scripting
Good morning!!
Im trying to practice withe Perl and sorting variables is not going good at all!
#!/usr/bin/perl
$username = $ENV {'LOGNAME'};
print "Hello, $username\n";
I want to add sort and 'mail' and 'home'. This below is what I have came up with,but of course its not working.
... (5 Replies)
Discussion started by: bigben1220
5 Replies
7. Shell Programming and Scripting
I have a file abc.txt which contains data in th following format
abc,23
hgfh,87
tweg,89
jdfjn,74
I want to sort on the basis of column (the second one). It should be numerical sort.
output should be
abc,23
jdfjn,74
hgfh,87
tweg,89
I know how to do it in unix. I need a PERL code (1 Reply)
Discussion started by: centurion_13
1 Replies
8. Shell Programming and Scripting
Hi all,
Not sure if this should be in the programming forum, but I believe it will get more response under the Shell Programming and Scripting FORUM.
Am trying to write a customized df script in Perl and need some help with regards to using arrays and file handlers.
At the moment am... (3 Replies)
Discussion started by: newbie_01
3 Replies
9. Shell Programming and Scripting
I have a directory of backup files.
named like this:
ldap.data.04-06-2012.tar
ldap.data.03-06-2012.tar
ldap.data.02-06-2012.tar
ldap.data.01-06-2012.tar
ldap.data.31-05-2012.tar
ldap.data.30-05-2012.tar
ldap.data.29-05-2012.tar
ldap.data.28-05-2012.tar
ldap.data.27-05-2012.tar... (6 Replies)
Discussion started by: robsonde
6 Replies
10. Shell Programming and Scripting
Hey guys,
I have started to learn perl recently because of a position I took. They want me to master perl and I've been reading books and practicing myself.
Basically I,m having my perl script run through a text pad and give the output in a special way
e.g
input
deviceconfig {
... (5 Replies)
Discussion started by: zee3b
5 Replies
LEARN ABOUT CENTOS
locale
locale(3pm) Perl Programmers Reference Guide locale(3pm)
NAME
locale - Perl pragma to use or avoid POSIX locales for built-in operations
SYNOPSIS
@x = sort @y; # Unicode sorting order
{
use locale;
@x = sort @y; # Locale-defined sorting order
}
@x = sort @y; # Unicode sorting order again
DESCRIPTION
This pragma tells the compiler to enable (or disable) the use of POSIX locales for built-in operations (for example, LC_CTYPE for regular
expressions, LC_COLLATE for string comparison, and LC_NUMERIC for number formatting). Each "use locale" or "no locale" affects statements
to the end of the enclosing BLOCK.
Starting in Perl 5.16, a hybrid mode for this pragma is available,
use locale ':not_characters';
which enables only the portions of locales that don't affect the character set (that is, all except LC_COLLATE and LC_CTYPE). This is
useful when mixing Unicode and locales, including UTF-8 locales.
use locale ':not_characters';
use open ":locale"; # Convert I/O to/from Unicode
use POSIX qw(locale_h); # Import the LC_ALL constant
setlocale(LC_ALL, ""); # Required for the next statement
# to take effect
printf "%.2f
", 12345.67' # Locale-defined formatting
@x = sort @y; # Unicode-defined sorting order.
# (Note that you will get better
# results using Unicode::Collate.)
See perllocale for more detailed information on how Perl supports locales.
perl v5.16.3 2013-03-04 locale(3pm)