2015-07-16 2 views
0

Я использовал awk для написания сценария. Мне интересно, как объявить массив в awk.Как объявить массив в awk

Я прочел gnu awk manual и ничего не нашел о Объявление.

Я хочу проверить, если индекс ind находится в awk-массиве arr.

echo 'awk' | awk 'BEGIN {arr} {if ('1' in arr) arr[ind] = 1}' 

я не объявить arr как массив ранее и запустить это в AWK дает мне такую ​​ошибку.

awk: cmd. line:1: (FILENAME=- FNR=1) fatal: attempt to use scalar `arr' as an array 
+2

Не нужно объявлять массив в awk. Просто введите в него значения, такие как arr [1] = 5 и получите доступ к ним как arr [index]. Для получения дополнительной информации см. Это http://www.chemie.fu-berlin.de/chemnet/use/info/gawk/gawk_12.html –

ответ

1

Ваш первоначальный arr в BEGIN блоке «объявляет», чтобы быть скаляром. Вот что путает awk. Просто удалите это.

+0

. Вы правы. Вот и все. :) – andy

Смежные вопросы