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.txtIt 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.txtSee 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)
In reply to Re: substring/regex question
by rjt
in thread substring/regex question
by rlastinger
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |