Проектная лаборатория
Собственный Grep
Этап 26 · Несколько совпадений
Вывод одного совпадения
Русский перевод заданий CodeCrafters. Примеры подготовлены для Go. Выбор языка меняет команды и результаты, но не текст задания.
На этом этапе вы добавите вывод одного совпавшего фрагмента текста.
Флаг -o
Флаг -o, также называемый only-matching, позволяет выводить только совпавший текст на отдельной строке.
Например:
$ echo -ne "I have one cow" | grep -o -E 'cow'
cowЕсли grep находит совпадение при включённом флаге -o, нужно:
- Извлечь подстроку, соответствующую шаблону.
- Вывести только эту подстроку, а не всю строку.
- Завершиться с кодом
0.
Если совпадение не найдено:
- Ничего не выводить.
- Завершиться с кодом
1.
Проверки
Тестирующая система запустит программу так:
$ echo -n "The king had 7 daughters" | ./your_program.sh -o -E "\d"
7Она проверит, что:
- Программа выводит только совпавший текст, а не всю строку.
- Программа завершается с кодом
0, когда совпадение найдено. - Программа ничего не выводит и завершается с кодом
1, когда совпадения нет.
Примечания
- Достаточно обработать одну входную строку и одно вхождение шаблона. Вывод нескольких совпадений и обработка нескольких строк появятся на следующих этапах.
Проверка в вашей IDE
Нужны Node.js, Git, Go 1.24+ для тестеров и инструменты выбранного языка. Тестеры загружаются и запускаются локально; отдельным проектам нужны дополнительные системные зависимости.
Настройка проекта и IDE
1. Создайте проект один раз
node '/opt/graphlms/tools/project-lab/cli.mjs' init grep ./my-grep --language go2. Откройте папку в IDE
cd ./my-grepРеализуйте требования этапа в созданном проекте.
Запустите из папки проекта
node '/opt/graphlms/tools/project-lab/cli.mjs' submit --stage cj0Запускайте submit из папки проекта. Это локальные проверки, а не сертификаты или результаты аккаунта CodeCrafters.
Результат проверки
go / ЛОКАЛЬНОПодключение к локальной проверке…
Здесь появится результат
Запустите submit в терминале. Страница обновляет результаты каждые 8 секунд.