这是我的数组(gawk脚本):
myArray["peter"] = 32
myArray["bob"] = 5
myArray["john"] = 463
myArray["jack"] = 11
Run Code Online (Sandbox Code Playgroud)
排序后,我需要以下结果:
bob 5
jack 11
peter 32
john 463
Run Code Online (Sandbox Code Playgroud)
当我使用"asort"时,索引会丢失.如何按数组值排序而不丢失索引?(我需要根据它们的值排序索引)
(我需要仅使用awk/gawk获取此结果,而不是shell脚本,perl等)
如果我的帖子不够清楚,这里有另一篇文章解释同一个问题:http://www.experts-exchange.com/Programming/Languages/Scripting/Shell/Q_26626841.html)
提前致谢
更新:
多亏了你们两个,但我需要按值排序,而不是索引(我希望根据它们的值排序索引).
换句话说,我需要这个结果:
bob 5
jack 11
peter 32
john 463
Run Code Online (Sandbox Code Playgroud)
不是:
bob 5
jack 11
john 463
peter 32
Run Code Online (Sandbox Code Playgroud)
(我同意,我的例子令人困惑,选择的价值非常糟糕)
从Catcall的代码中,我编写了一个可行的快速实现,但它相当难看(我在排序和分割之前将键和值连接在一起).这是它的样子:
function qsort(A, left, right, i, last) {
if (left >= right)
return
swap(A, left, left+int((right-left+1)*rand()))
last = left
for (i = left+1; i <= right; i++)
if (getPart(A[i], …
Run Code Online (Sandbox Code Playgroud)