У меня возникла следующая проблема с функцией gask asorti:
gawk 'BEGIN{ \
a[1]=6; \
a[2]=7; \
a[3]=8; \
a[21]=9; \
a[123]=10; \
t=asorti(a, o); \
for (i=1; i<=t; i++) { \
print i,o[i]; \
} \
}'
Результат:
1 1
2 123
3 2
4 21
5 3
Итак, все довольно ясно, отсортированные индексы в лексикографическом порядке, но в awkДок говорит (asort (s [, d])):
"Содержимое s сортируется с использованием обычных правил gawk для сравнения значений ..."
Однако, когда я копирую индексы во временный массив и сортирую этот новый массив с помощью asort (),
кажется, что все в порядке (используя что-то вроде):
j=1; for(e in a) { temp[j++] = e; }
Я ДЕЙСТВУЮ-НЕПРАВИЛЬНО, или это проблема с asorti gawk ()?