В настоящее время я пишу сценарий awk
в сценарии bash. Один из моих аргументов нужно разделить и прокрутить. Например: для аргумента 1234
мне нужно перебрать каждое число в порядке написания. Итак, 2413
не эквивалентно.
Я использовал split
для создания массива, а затем цикл for-in
для циклического перемещения по массиву. Я предполагал, что он будет проходить по порядку, но это не так.
Мой код выглядит следующим образом:
split(cols,toShow,"")
for (c in toShow)
printf "%s\n",c
cols
передается команде awk
с помощью опции -v
и дает следующий результат:
4
1
2
3
После проверки этого несколько раз, с различной длиной аргументов и использованием как цифр, так и букв, оказалось, что цикл for
начинается с элемента 4 массива, циклически проходит до конца по порядку, затем циклически проходит по элементам с 1 по 3, вместо этого ожидаемого, начиная с элемента 1 и циклически до конца.
Можно ли как-то изменить поведение или я что-то не так делаю?
EDIT Для пояснения, я использую gawk
в xubuntu 11.10.