Данный проект представляет собой реализацию двух классических утилит командной строки: cat и grep, с поддержкой различных флагов и функций, аналогичных GNU-версиям. Основной целью проекта является создание собственных версий этих утилит с поддержкой всех необходимых флагов и возможностей для работы с файлами и текстом.
Утилита cat предназначена для отображения содержимого файлов в консоли. Реализованная версия поддерживает все стандартные флаги, предоставляемые GNU версией утилиты.
-b— нумерация непустых строк.-e— эквивалент флагов-vE(показывает символы конца строки).-n— нумерация всех строк.-s— удаление последовательных пустых строк.-t— эквивалент флагов-vT(показывает табуляции).- Другие флаги согласно спецификации GNU
cat.
- Исходные и заголовочные файлы:
src/cat/ - Итоговый исполняемый файл:
src/cat/s21_cat
Утилита grep предназначена для поиска строк в файлах на основе регулярных выражений. Реализованная версия поддерживает несколько ключевых флагов для гибкого поиска, а также возможность использования регулярных выражений через библиотеки pcre или regex.
-e— поиск по шаблону (регулярное выражение).-i— игнорирование регистра.-v— инверсия поиска (вывод строк, не совпадающих с шаблоном).-c— подсчет количества совпадающих строк.-l— вывод только имен файлов с совпадениями.-n— вывод номеров строк с совпадениями.
- Исходные и заголовочные файлы:
src/grep/ - Итоговый исполняемый файл:
src/grep/s21_grep
В этом разделе реализованы дополнительные флаги для утилиты grep для улучшения функциональности.
-h— отключение вывода имен файлов в результатах поиска.-s— подавление сообщений об ошибках, например, когда файл не найден.-f— получение шаблонов поиска из файла.-o— вывод только совпадающих частей строк.
В этом разделе реализована поддержка комбинаций флагов, например, -iv или -in, для повышения гибкости использования утилиты grep.
-
Клонируйте репозиторий проекта:
git clone https://github.com/KovikaSA/UtilsCatGrep.git
-
Перейдите в директорию проекта:
cd <путь к проекту>
-
Для сборки утилит
catиgrepиспользуйте make:make
-
Для запуска утилиты
cat:./cat/s21_cat [флаги] [файлы]
-
Для запуска утилиты
grep:./grep/s21_grep [флаги] [шаблон] [файлы]
Тесты для утилит можно запустить с помощью следующих команд:
make test_cat # для тестов cat
make test_grep # для тестов grepТесты проверяют корректность работы утилит с разными флагами и комбинациями флагов на основе нескольких тестовых файлов.
Проект реализует основные функции утилит cat и grep, обеспечивая поддержку всех необходимых флагов и возможностей для работы с текстовыми данными. Расширенная реализация также добавляет поддержку сложных комбинаций флагов и работу с регулярными выражениями, что делает утилиты гибкими и удобными в использовании.