grep ищет строки по шаблону, awk обрабатывает текст как таблицу с полями, а sed выполняет потоковое редактирование текста. Эти утилиты часто используют вместе с pipe для анализа логов, конфигураций и результатов других команд.
grep ищет строки по шаблону, awk обрабатывает текст как таблицу с полями, а sed выполняет потоковое редактирование текста. Эти утилиты часто используют вместе с pipe для анализа логов, конфигураций и результатов других команд.
Команда grep
grep ищет строки, которые совпадают с указанным текстом или регулярным выражением.
grep "error" app.log
grep -i "error" app.log
grep -r "DATABASE_URL" .
grep -E "error|warning" app.log-i — поиск без учёта регистра;
-r — рекурсивный поиск по каталогам;
-E — расширенные регулярные выражения.
Команда awk
awk обрабатывает текст построчно и разбивает строки на поля. По умолчанию поля разделяются пробелами, а доступ к ним получают через $1, $2 и так далее.
awk '{print $1}' access.log
awk -F: '{print $1}' /etc/passwd
ps aux | awk '{print $2, $11}'В примере с /etc/passwd параметр -F: задаёт двоеточие как разделитель полей.
Команда sed
sed — потоковый редактор текста. Его часто используют для замены, удаления и выборки строк без ручного открытия файла в редакторе.
sed 's/http:/https:/' config.txt
sed 's/http:/https:/g' config.txt
sed -n '1,10p' app.log
sed -i 's/DEBUG=true/DEBUG=false/' .envФлаг -i изменяет файл на месте, поэтому перед его использованием важно понимать последствия и при необходимости сделать резервную копию.
Пример с pipe
journalctl -u nginx | grep -i error | awk '{print $1, $2, $3, $NF}'Здесь логи Nginx передаются в grep для поиска ошибок, а затем awk выбирает нужные поля из результата.
Как ответить на собеседовании
grep ищет текст и регулярные выражения в строках, awk извлекает и обрабатывает поля структурированного текста, а sed выполняет потоковые замены и другие преобразования. Обычно применяю их для логов, конфигураций и обработки вывода команд через pipe.
Оцени свой прогресс