$ awk
Обрабатывает текст по строкам и столбцам. С помощью awk можно выбрать нужные поля, отфильтровать строки, выполнить расчёты и изменить формат вывода. Например, awk "{print $1}" file.txt выведет первый столбец каждой строки.
Синтаксис
awk [ОПЦИИ] ПРОГРАММА [ФАЙЛ]
Основные опции
| -F СИМВ | свой разделитель полей (по умолчанию пробелы) |
| {print $N} | напечатать N-е поле |
| /шаблон/ | условие: обрабатывать только совпавшие строки |
| NR / NF | номер строки / число полей в ней |
Примеры из практики
$ df -h | awk "{print $5, $6}"После запуска · пошаговоЧто произойдёт: занятость и точка монтирования из df. Что появится в терминале: Команда выведет результат обработки либо сообщения о ходе выполнения. Точный текст зависит от файлов, настроек системы и версии утилиты. Как понять, что всё получилось: Терминал вернулся к приглашению без Error/Failed. Для дополнительной проверки выполните «echo $?»: значение 0 обычно означает успех.
$ awk -F: "{print $1}" /etc/passwdПосле запуска · пошаговоЧто произойдёт: список логинов из /etc/passwd. Что появится в терминале: Команда выведет результат обработки либо сообщения о ходе выполнения. Точный текст зависит от файлов, настроек системы и версии утилиты. Как понять, что всё получилось: Терминал вернулся к приглашению без Error/Failed. Для дополнительной проверки выполните «echo $?»: значение 0 обычно означает успех.
$ awk "{c[$1]++} END {for (ip in c) print c[ip], ip}" access.logПосле запуска · пошаговоЧто произойдёт: сколько запросов с каждого IP. Что появится в терминале: Команда выведет результат обработки либо сообщения о ходе выполнения. Точный текст зависит от файлов, настроек системы и версии утилиты. Как понять, что всё получилось: Терминал вернулся к приглашению без Error/Failed. Для дополнительной проверки выполните «echo $?»: значение 0 обычно означает успех.
Совет практика. Комбинация «вывести таблицу и вырезать колонки»: ps aux | awk "{print $2, $11}" — PID и имя процесса.
Поддержка дистрибутивов
- ✓ Ubuntu
- ✓ Debian
- ✓ Fedora
- ✓ RHEL
- ✓ Arch
- ✓ Alpine
- ✓ openSUSE