awk
15 commands
15 shown
Вывести конкретную колонку
Вывести 3-е поле (разделитель — пробел)
awk '{print $3}' file.txt
Пользовательский разделитель
Разделитель — двоеточие; вывести имя пользователя и UID
awk -F: '{print $1, $3}' /etc/passwd
Фильтровать строки по паттерну
Вывести номер строки и содержимое для строк с ERROR
awk '/ERROR/ {print NR": "$0}' app.log
Сумма колонки
Накопить числовую колонку и вывести сумму
awk '{sum += $4} END {print sum}' access.log
Строки между двумя паттернами
Диапазонный паттерн: строки от START до END включительно
awk '/START/,/END/' file.txt
Пропустить заголовок
Обработать все строки кроме первой (заголовка)
awk 'NR>1 {print $1, $2}' data.csv
Подсчёт вхождений по ключу
Частота первого поля (например IP-адресов)
awk '{count[$1]++} END {for (k in count) print count[k], k}' access.log | sort -rn
Вывести последнее поле
NF = количество полей; $NF = последнее поле
awk '{print $NF}' file.txt
Фильтр с несколькими условиями
Строки где поле 2 > 500 И поле 5 равно POST
awk '$2 > 500 && $5 == "POST"' access.log
Переформатировать вывод
Выровненный вывод с фиксированными шириной столбцов
awk '{printf "%-20s %5d\n", $1, $2}' data.txt
Запустить скрипт awk из файла
Загрузить программу awk из внешнего файла
awk -f transform.awk input.txt
Трансформация файла через awk
Глобальная замена с записью обратно в файл
awk '{gsub(/foo/, "bar"); print}' input.txt > tmp && mv tmp input.txt
CSV с кавычками (gawk)
Корректный разбор CSV полей с кавычками через FPAT
gawk -v FPAT='([^,]+)|("[^"]+")' '{print $2}' data.csv
Блоки BEGIN/END
Выполнить код до и после обработки всех строк
awk 'BEGIN{print "Start"} {lines++} END{print lines" lines processed"}' file.txt
Объединение двух файлов по ключу
Left-join data.txt с lookup.txt по первому полю
awk 'NR==FNR{a[$1]=$2; next} $1 in a {print $0, a[$1]}' lookup.txt data.txt
no commands match