AWK в примерах

awk tolower

Преобразование регистра

Преобразование строк результата к нижнему регистру и пропуск 1-ой строки (обычно заголовок).
Получаем список доменов с nic.ru и преобразуем его в удобный для работы

wget 'https://www.nic.ru/downloads/domains.gz?login=14331/NIC-REG/adm&password=MySecretPass' -O domains.gz
gzip -d domains.gz
awk ' NR >= 2 { print tolower($1) }' domains > .domains

к верхнему регистру

USER="Developer garry"; echo $USER | awk '{ print tolower($1), toupper($2)}'
# ответ
developer GARRY

Отбор по номеру строки

Посмотреть только активные порты TCP4, отсортированные и без лишнего

netstat -tulpn | awk 'NR > 2 { print $1,$4 }' | grep "tcp " | sort

NR (NumberRow) задает строки, которые надо обрабатывать.

Включить вывод 1-ой строки

Чтобы не съедалась первая строка при обработке файла, который начинается с разделителя (первый символ является разделителем), надо после FS прописать команду "$0 = $0"

ls -1 /tank/volumes/*  | awk '{ FS="/"; $0 = $0; print $4 }'

Grep в качестве предфильтра

Можно до обработки awk сразу "отсечь" по типу grep нужную строку (строки)

free -m | awk '/^Mem/{print $2}'
3951

Сумма по колонке

Просуммировать 4-ый столбец (размер дисков в Гб)

openstack volume list --all-projects --long -f value | grep "Simple EBS" | awk '{s += $4} END {print s}'

Применяется конструкция вида: '{sum += $4} end {print sum}'

Максимальное значение

Задача - найти максимальное значение по колонке.

idx() - это имя функции awk, можно выбрать другое имя переменной, например index.
idx=3  - выборка по 3-ому полю 
NR==2 - начинать подсчет со 2-ой строки (если есть заголовок)

$ awk -v idx=3 'NR==2 || $idx>max{max=$idx} END {print max}' file

aizaro@mail.ru