Skip to content

Repository files navigation

CLI

CI

Возможности

  • Команды cat, echo, pwd, wc, exit, cd, ls, grep
  • Запуск внешних команд
  • Синтаксис с одинарными и двойными кавычками
  • Переменных окружения и подстановки
  • Пайплайн через "|"

Команда grep

Встроенная реализация grep с поддержкой регулярных выражений и поддержкой флагов.

Поддерживаемые флаги

Флаг Описание
-w, --word-regexp Поиск только слова целиком
-i, --ignore-case Регистронезависимый (case-insensitive) поиск
-A, --after-context Следующее за -A число говорит, сколько строк после совпадения распечатать

Библиотека для парсинга аргументов

Для парсинга аргументов командной строки в команде grep используется библиотека CLI11 (версия 2.4.2).

Преимущества CLI11

  1. Header-only: Удобен, так как представлен в виде только одного заголовочного файла, что упрощает интеграцию в проект.

  2. Простота использования: Декларативный синтаксис позволяет легко определять флаги и опции:

    app.add_flag("-i", case_insensitive, "Case insensitive");
    app.add_option("-A", after_context, "Lines after match");
  3. Обновляемость: Проект активно поддерживается и обновляется, имеет понятную и подробную документацию.

Альтернативы

  • Boost.Program_options: Избыточен для grep, требует линковки.
  • Apache Commons CLI: Не применим для C++, написан на Java.
  • getopt: C-стиль, неудобен для сложных сценариев и плохо расширяем.

Полезные команды

  • make build-{debug/release} - собрать дебажную или релизную версию
  • make run-{debug/release} - собрать и запустить дебажную или релизную версию
  • make start-{debug/release} - запустить дебажную или релизную версию
  • make tests - запустить тесты в дебажном режиме
  • make clean - очистить билд-директории
  • make format - отформатировать код

Сборка и запуск

make build-release
make start-release

Команда разработки (Команда 1)

  • Вуколов Максим Вячеславович
  • Григорович Вячеслав Дмитриевич
  • Мингарипов Нияз Рустемович

Лицензия

MIT

About

Custom bash-like command line interpreter

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages