Sort associative array with AWK

后端 未结 6 1459
逝去的感伤
逝去的感伤 2020-12-29 08:31

Here\'s my array (gawk script) :

myArray[\"peter\"] = 32
myArray[\"bob\"] = 5
myArray[\"john\"] = 463
myArray[\"jack\"] = 11

After sort, I

6条回答
  •  [愿得一人]
    2020-12-29 08:39

    And the simple answer...

    function sort_by_myArray(i1, v1, i2, v2) {
        return myArray[i2] < myArray[i1];
    }
    
    BEGIN {
        myArray["peter"] = 32;
        myArray["bob"] = 5;
        myArray["john"] = 463;
        myArray["jack"] = 11;
        len = length(myArray);
    
        asorti(myArray, k, "sort_by_myArray");
    
        # Print result.
        for(n = 1; n <= len; ++n) {
                print k[n], myArray[k[n]]
        }
    }
    

提交回复
热议问题