Показать ассоциативный массив в awk

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

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

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 этот цикл не гарантирует возврата ключей ассоциативного массива в каком-либо конкретном порядке.

Другие вопросы по тегам