Как отобразить ассоциативный массив, если я не знаю индекс? Мой сценарий:
{
tab[$1]=tab[$1]+1
}
END{
print tab[*]#display array -> it doesn't work
}
Давайте рассмотрим этот тестовый файл:
$ 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 этот цикл не гарантирует возврата ключей ассоциативного массива в каком-либо конкретном порядке.