Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

Re: substring/regex question

by rjt (Deacon)
on Aug 06, 2013 at 05:37 UTC ( #1048047=note: print w/replies, xml ) Need Help??

in reply to substring/regex question

Update: I may have misread your question. I missed the one little word in your description that changes the whole premise: "sort". I now believe you actually want to print the input file sorted on the 3rd column, not just print the 3rd column. I'd use the Schwartzian Transform for a pure-Perl solution:

print for map { pop @$_ } sort { $a->[0] <=> $b->[0] } map { [ (split /,/)[3], $_ ] } <>;

Of course, the following non-Perl solution works just as well on your UNIX-ish OS:

sort -t, -k4 -n <trace.csv >rgextract.txt
#!/opt/local/bin/perl -w

It appears you're on OS X or other UNIX-ish OS, so given this, and the apparent regularity of your data, I'd probably use the following one-liner:

perl -F, -anE 'say $F[3]' <trace.csv >rgextract.txt

See perlrun for information on the switches used, but basically:

-F, Autosplit delimiter is ',' -a Enable autosplit fields into @F -n Assume while (<>) { ... } around program -E Eval one-line program with optional features (i.e., 'say', in this case)
use strict; use warnings; omitted for brevity.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1048047]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (4)
As of 2018-05-20 20:31 GMT
Find Nodes?
    Voting Booth?