如何在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。
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)