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

Эта задача — шаг 16 курса «Текст в консоли: grep, sed, awk»

Расходы по отделам из CSV

средне~5 мин

В /root/expenses.csv строки отдел,сумма — каждая покупка отдельно, отделы повторяются вперемешку. Посчитай сумму по каждому отделу и запиши в /root/by_dept.txt строки отдел сумма (через пробел). Порядок строк неважен.

Что потренируешь:
  • awk
  • -F разделитель
  • ассоциативный массив
  • группировка
  • блок END

Разбор темы

Группировка с суммой — то, что в SQL пишут как GROUP BY с SUM, — в awk делается ассоциативным массивом: ключ — значение группирующей колонки, ячейка — накопленная сумма. Весь файл проходится один раз, а печать итогов переносится в END, когда все строки уже учтены. Для CSV нужно поменять разделитель полей: по умолчанию awk режет по пробелам, и вся строка sales,1200 была бы одним полем.

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

  1. суммы по отделам верные

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