awk

awk中的数组排序问题怎么解决

小亿
125
2023-09-15 22:46:38
栏目: 编程语言

在awk中,可以使用内置的sort函数对数组进行排序。sort函数的用法如下:

asort(array [, target])

其中,array是要排序的数组,target是可选参数,指定排序后的结果存放的数组名。如果不指定target,则会将排序后的结果直接覆盖原数组。

以下是一个示例,展示如何对数组进行排序:

$ awk 'BEGIN { arr[1]=3; arr[2]=1; arr[3]=2; print "Before sorting:"; for (i in arr) print arr[i] }'
Before sorting:
3
1
2
$ awk 'BEGIN { arr[1]=3; arr[2]=1; arr[3]=2; asort(arr); print "After sorting:"; for (i in arr) print arr[i] }'
After sorting:
1
2
3

在上述示例中,首先创建了一个包含三个元素的数组arr。然后,使用asort函数对数组进行排序,并将结果存放在原数组arr中。最后,使用for循环遍历数组,打印排序后的结果。

如果你想将排序后的结果存放在另一个数组中,可以指定target参数。以下是一个示例:

$ awk 'BEGIN { arr[1]=3; arr[2]=1; arr[3]=2; asort(arr, sortedArr); print "Original array:"; for (i in arr) print arr[i]; print "Sorted array:"; for (i in sortedArr) print sortedArr[i] }'
Original array:
3
1
2
Sorted array:
1
2
3

在这个示例中,除了对数组进行排序,还创建了一个新的数组sortedArr,将排序后的结果存放在其中。

0
看了该问题的人还看了