Для поиска в конкретном поле подходит awk: index($3, "строка") проверяет третью колонку как обычную подстроку. grep ищет по всей строке и сам по себе колонку не ограничивает.
Как в Linux найти подстроку в конкретной колонке лог-файла (например, дату в третьей колонке)?
Для поиска в конкретном поле подходит awk: index($3, "строка") проверяет третью колонку как обычную подстроку. grep ищет по всей строке и сам по себе колонку не ограничивает.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для поиска в конкретном поле подходит awk: index($3, "строка") проверяет третью колонку как обычную подстроку. grep ищет по всей строке и сам по себе колонку не ограничивает.
awk 'index($3, "2026-10-07")' app.log
По умолчанию поля разделяются пробельными символами. Для табуляции можно явно задать -F '\t'. Если нужен шаблон регулярного выражения, используйте $3 ~ /шаблон/, но тогда специальные символы имеют смысл regex.
Для CSV с кавычками и разделителями внутри значений простого awk -F, недостаточно: нужен CSV-парсер. Сначала уточните формат и нумерацию колонок, чтобы случайно не искать дату в другом поле.