awk

15 commands

15 shown

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