在awk中对数字数组进行排序

Håk*_*and 1 awk gawk

如何在awk中对数字数组进行排序?考虑“ sortNum.awk”:

{
    split($0,a," ")
    for (i in a) print a[i]
    print "####"
    asort(a)
    for (i in a) print a[i]
}
Run Code Online (Sandbox Code Playgroud)

echo "4 3 2 1" | awk -f sortNum.awk给予

1
4
3
2
####
4
1
2
3
Run Code Online (Sandbox Code Playgroud)

我正在使用GNU Awk版本3.1.8。

Bar*_*mar 5

for (i in a) 不会按数字顺序选择索引,您需要明确地执行此操作。

{
    n = split($0,a," ");
    for (i = 1; i <= n; i++) print a[i];
    print "####"
    asort(a)
    for (i = 1; i <= n; i++) print a[i];
}
Run Code Online (Sandbox Code Playgroud)