1

Как отобразить ассоциативный массив, если я не знаю индекс? Мой сценарий:

{
tab[$1]=tab[$1]+1
}
END{
print tab[*]#display array -> it doesn't work
}

1 ответ1

1

Давайте рассмотрим этот тестовый файл:

$ cat file
a
b
b
c
c
c

Чтобы получить ключи ассоциативного массива в awk, мы используем цикл for в форме for (key in arrayname) action . Например:

$ awk '{tab[$1]=tab[$1]+1} END{for (key in tab)print key, tab[key]}' file
a 1
b 2
c 3

Обратите внимание, что в POSIX awk этот цикл не гарантирует возврата ключей ассоциативного массива в каком-либо конкретном порядке.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .