02-15-2008
a unix command would be
>sort rawfile -t'|' -k1.21,1.30 -r
Carl________15_X_Way____A004________LX
Will________2_A_St______A003________LX
Benny_______5_Spring____A002________LX
Joe_________12_Main_St__A001________LX
and that ordered my file reverse by what is in positions 21-30.
I did this by:
(a) specifying the 'tab' or key flag as the '|' which does not exist; thus all is considered field 1
(b) said to sort on k1.21,1.30 which translated to field one positions 21 to 30
(c) and the -r put in reverse order
So in perl, I figure somehow I need to define that I want to use character positions 21-30 as the key field. Then give a command to sort on those positions.
Perhaps this needs to be its own subroutine. I do not know.
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
cut(1) General Commands Manual cut(1)
Name
cut - cut out selected fields of each line of a file
Syntax
cut -clist [file1 file2...]
cut -flist [-dchar] [-s] [file1 file2...]
Description
Use the command to cut out columns from a table or fields from each line of a file. The fields as specified by list can be fixed length,
that is, character positions as on a punched card (-c option), or the length can vary from line to line and be marked with a field delim-
iter character like tab (-f option). The command can be used as a filter. If no files are given, the standard input is used.
Use to make horizontal ``cuts'' (by context) through a file, or to put files together in columns. To reorder columns in a table, use and
Options
list Specifies ranges that must be a comma-separated list of integer field numbers in increasing order. With optional - indicates
ranges as in the -o option of nroff/troff for page ranges; for example, 1,4,7; 1-3,8; -5,10 (short for 1-5,10); or 3- (short
for third through last field).
-clist Specifies character positions to be cut out. For example, -c1-72 would pass the first 72 characters of each line.
-flist Specifies the fields to be cut out. For example, -f1,7 copies the first and seventh field only. Lines with no field delim-
iters are passed through intact (useful for table subheadings), unless -s is specified.
-dchar Uses the specified character as the field delimiter. Default is tab. Space or other characters with special meaning to the
shell must be quoted. The -d option is used only in combination with the -f option, according to XPG3 and SVID2/SVID3.
-s Suppresses lines with no delimiter characters. Unless specified, lines with no delimiters are passed through untouched.
Either the -c or -f option must be specified.
Examples
Mapping of user IDs to names:
cut -d: -f1,5 /etc/passwd
To set name to the current login name for the csh shell:
set name=`who am i | cut -f1 -d" "`
To set name to the current login name for the sh, sh5, and ksh shells:
name=`who am i | cut -f1 -d" "`
Diagnostics
"line too long" A line can have no more than 511 characters or fields.
"bad list for c/f option"
Missing -c or -f option or incorrectly specified list. No error occurs if a line has fewer fields than the list calls
for.
"no fields" The list is empty.
See Also
grep(1), paste(1)
cut(1)