# Мини-проект: найди и собери

Курс: Claude Code и терминал: с 0 — https://zero2claude.ru/learn/code-terminal
Канонический URL: https://zero2claude.ru/learn/code-terminal/3-8-mini-proekt-poisk

Связка find и grep: find находит нужные файлы, grep вытаскивает из них строки с ошибками. Практика поиска.

Вот ты и добрался до финала третьего уровня. Пора собрать всё, чему научился, в одну рабочую связку — ту самую, которой пользуются каждый день: **найти нужные файлы, а потом вытащить из них важные строки**.

## Шаг 1 — найти логи

Представь, что в проекте куча файлов, но тебя интересуют только логи — файлы с расширением `.log`. Находим их маской:

```
find . -name "*.log"
```

`find` обойдёт всё дерево и покажет `app.log` и `old.log`. Теперь ты знаешь, где они лежат.

## Шаг 2 — вытащить ошибки

Логи бывают огромными, и читать их целиком — мука. Нас интересуют только ошибки — строки со словом `ERROR`. Достаём их через `grep`:

```
grep ERROR logs/app.log
```

`grep` пройдёт по файлу и выведет только строки, где встречается `ERROR` — про диск и про сеть. Всё лишнее (`OK`) останется за бортом.

Это и есть базовый рабочий ритм в терминале: `find` отвечает на вопрос «где?», а `grep` — на вопрос «что внутри?». Связка из двух простых команд решает задачу, на которую глазами ушли бы минуты.

## Попробуй

Сделай оба шага по очереди:

1. `find . -name "*.log"` — найди все логи;
2. `grep ERROR logs/app.log` — покажи строки с ошибками.

## Поздравляю — уровень 3 пройден!

Ты освоил настоящий поиск: умеешь читать файлы, фильтровать строки через [`grep`](/commands/grep), описывать наборы файлов масками `*` и `?` и обходить целые деревья папок командой [`find`](/commands/find). Это уже не «гость в терминале» — это уверенные навыки.

Что дальше? На следующем уровне мы перейдём от поиска к **установке инструментов**: научимся ставить программы из терминала и доберёмся до Node.js — без него не обходится ни один современный проект. Двигаемся дальше.
