>_ IzzyLab

Практическое задание

Частоты слов через ассоциативный массив

средне

В /root/words.txt — слова (по одному на строку, с повторами). Напиши /root/count.sh, который через ассоциативный массив посчитает, сколько раз встречается слово error, и выведет число. Запусти, результат — в /root/errors.txt.

Что потренируешь:
  • ассоциативные массивы
  • declare -A
  • цикл while read
  • арифметика bash
  • подсчёт частот

Разбор темы

Ассоциативный массив — это словарь: индексами служат произвольные строки-ключи, а не числа, что идеально ложится на задачу подсчёта частот (ключ — слово, значение — счётчик). В bash такой массив нужно объявить явно через declare с флагом -A, иначе оболочка сочтёт индексы числовыми и логика сломается. Файл читают построчно циклом while с командой read, подавая содержимое через перенаправление на входе цикла, а счётчик по ключу наращивают в арифметическом контексте $(( ... )), где несуществующая ячейка трактуется как ноль. После обхода искомое значение просто достаётся из ячейки по нужному ключу.

Что проверяется

  1. слово error встречается 4 раза

Как это выглядит