Linux Labs

Bash: обработка текста и скрипты / Ступень 2 из 9

sed и awk: правка и поля потока

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 4 из 9 · на машине · 5 мин

Столбцы и сумма

Бухгалтер просит сумму платежей за октябрь из payments.csv. cut вырежет колонку, но складывать числа он не умеет.

awk выполняет короткую программу для каждой строки. Строку он делит на поля: первое — $1, второе — $2 и так далее. Программа { s += $3 } прибавляет третье поле к переменной s, а блок END { print s } выполняется один раз, после последней строки, и печатает итог. Посмотри на файл и сложи колонку amount.

Упражнение · посмотреть

Сложи колонку amount

В ~/sed-lab посмотри начало payments.csv и сложи колонку amount — сначала без ключа -F, потом с ним.

Сначала предположи

Что напечатает первая команда awk, без -F?

Теперь начни упражнение, выполни команду и сверь прогноз с выводом.

Войти и начать Машина доступна после входа

По умолчанию awk делит строку по пробелам и табуляциям. В строке CSV пробелов нет, вся она для awk — одно поле $1, третьего поля нет, и сумма осталась нулём. Ключ -F',' задаёт разделитель — запятую, и $3 становится колонкой amount. Последнее поле, сколько бы их ни было, — $NF. Строку заголовка awk тоже сложил: слово amount он считает нулём.

Ubuntu 24.04
Загрузка…