Re: An interesting sort problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Nov 27, 2015 at 12:38:38PM -0700, jd1008 wrote:
> 
> 
> On 11/27/2015 12:14 PM, Jon LaBadie wrote:
> >On Fri, Nov 27, 2015 at 09:57:11AM -0700, jd1008 wrote:
> >>
> >>On 11/27/2015 03:29 AM, Andrew Haley wrote:
> >>>#!/bin/awk -f
> >>>{
> >>>      lines[NR]=$NF " " $0
> >>>}
> >>>
> >>>END {
> >>>      PROCINFO["sorted_in"]="@val_type_asc"
> >>>#      for (i in lines) {
> >          for (i = NR; i >= 1; i--) {
> >>>          line = lines[i]
> >>>          j=index(line, " ")
> >>>          print substr(line, j+1)
> >>>      }
> >>>}
> >>Hi Andrew,
> >>manpage for awk does not betray any info on making sort in reverse.
> >>What is the incantation in this script to make the sort in reverse?
>
> Sorry John. It did not sort in reverse :(
> 

Whoops, sorry, I forgot PROCINFO doesn't sort the array,
it affects how the array is accessed.

Does this work?  Choose which ever function suits your direction.


#!/bin/awk -f
{
      lines[NR]=$NF " " $0
}

function cmp_str_index(i1, v1, i2, v2)
{
    # string index comparison, ascending order
    v1 = v1 ""
    v2 = v2 ""
    if (v1 < v2)
	return -1
    return (v1 != v2)
}

function rcmp_str_index(i1, v1, i2, v2)
{
    # string index comparison, decending order
    v1 = v1 ""
    v2 = v2 ""
    if (v2 < v1)
	return -1
    return (v2 != v1)
}


END {
     PROCINFO["sorted_in"] = "rcmp_str_index"
     for (i in lines) {
          line = lines[i]
          j=index(line, " ")
          print substr(line, j+1)
     }
}

jl
-- 
Jon H. LaBadie                  jonfu@xxxxxxxxxx
-- 
users mailing list
users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe or change subscription options:
https://admin.fedoraproject.org/mailman/listinfo/users
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct
Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines
Have a question? Ask away: http://ask.fedoraproject.org



[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [EPEL Devel]     [Fedora Magazine]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Desktop]     [Fedora Fonts]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Fedora Sparc]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux