Работа с awk и CSV¶
Команда awk — это мощный текстовый анализатор, используемый для обработки строк и столбцов в текстовых файлах, особенно в формате CSV (разделённые запятой значения).
Основные возможности awk:¶
Разделение строк на поля по заданному разделителю (по умолчанию — пробел, но можно задать любой, например, запятую).
Фильтрация строк по условиям.
Вывод определённых полей.
Агрегация и подсчёт.
Пример файла CSV:¶
Предположим, у нас есть файл Кэшбэк_ссылки.csv следующего вида:
Название;Ссылка;Клики;Покупки ($);Покупки в пути ($);Отказы
АлиЭкспресс;https://ali.com;23;5.40;1.23;0
Ozon;https://ozon.ru;10;2.00;0.00;1
СберМаркет;https://sbermarket.ru;5;0.00;0.00;0
Часто используемые примеры с awk:¶
1. Установим разделитель полей как `;`:
awk -F ";" '{print $1}' Кэшбэк_ссылки.csv
Выведет названия всех магазинов.
2. Ссылки с хотя бы одним переходом:
awk -F ";" '$3 > 0 {print $2}' Кэшбэк_ссылки.csv
3. Ссылки с более чем 10 кликами:
awk -F ";" '$3 > 10 {print $1, $3}' Кэшбэк_ссылки.csv
4. Покупки больше $1.00:
awk -F ";" '$4 > 1 {print $1, $4}' Кэшбэк_ссылки.csv
5. Самые кликабельные ссылки (сортировка по убыванию):
awk -F ";" 'NR>1 {print $1, $3}' Кэшбэк_ссылки.csv | sort -k2 -nr
6. Суммарное количество переходов:
awk -F ";" 'NR>1 {sum += $3} END {print "Всего кликов:", sum}' Кэшбэк_ссылки.csv
Пояснения:¶
-F ";"— установка символа-разделителя (в CSV-файле это точка с запятой).$1, $2, $3 ...— поля строки. $1 — первое поле, $2 — второе и т.д.NR > 1— пропуск первой строки (заголовка).sum += $3— подсчёт суммы всех значений в третьем столбце.
🎯 Практическое применение:¶
Используя awk, вы можете быстро:
Получить список самых популярных ссылок.
Найти неработающие ссылки (например, без переходов).
Вычислить эффективность по покупкам.
Проанализировать отказы и транзакции в пути.
🛠 Подходит для использования на Raspberry Pi Zero 2 W, легко автоматизируется в bash-скриптах и cron-задачах.