Как в Linux найти подстроку в конкретной колонке лог-файла (например, дату в третьей колонке)?

Для поиска в конкретном поле подходит awk: index($3, "строка") проверяет третью колонку как обычную подстроку. grep ищет по всей строке и сам по себе колонку не ограничивает.

Короткий ответ

Что ответить на собеседовании

Для поиска в конкретном поле подходит awk: index($3, "строка") проверяет третью колонку как обычную подстроку. grep ищет по всей строке и сам по себе колонку не ограничивает.

Подробный разбор

Ответ с пояснениями

Для поиска в конкретном поле подходит awk: index($3, "строка") проверяет третью колонку как обычную подстроку. grep ищет по всей строке и сам по себе колонку не ограничивает.

awk 'index($3, "2026-10-07")' app.log

По умолчанию поля разделяются пробельными символами. Для табуляции можно явно задать -F '\t'. Если нужен шаблон регулярного выражения, используйте $3 ~ /шаблон/, но тогда специальные символы имеют смысл regex.

Для CSV с кавычками и разделителями внутри значений простого awk -F, недостаточно: нужен CSV-парсер. Сначала уточните формат и нумерацию колонок, чтобы случайно не искать дату в другом поле.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее