Предположим, у меня есть следующий скрипт, и он перебирает два массива и печатает значения, чередующиеся между ними.Я передаю сценарию следующий файл:
1 2
1 2
1 2
1 2
1 2
1 2
Awk Script:
BEGIN{ FS = "\t" }
{ a[o++]=$1; b[c++]=$2 }
END{ while (++co <= 5 ) {
for ( k = 1+count; k <= 2+count; k++ ){ if (length(a) >= 0){ print a[k]; delete a[k]} }
for ( ki = 1+count; ki <= 2+count; ki++ ){ if (length(b) >= 0){ print b[ki]; delete b[ki] } }
count = k
}
}
И я ожидаю, что результат будет
1
1
2
2
1
1
2
2
1
1
2
2
Но я получаю:
1
1
2
2
1
1
2
2
(followed by blank lines but they are not my issue)
Итак, как заставить его работать, пока оба массива не опустеют и все не будет напечатано.И как заставить это работать, даже если массивы имеют разный размер, например, один может содержать, например, на 20 значений больше, чем другой.Итак, только эти значения должны быть напечатаны, пока массив не станет пустым.