SimpleBashUtils
Документация по проекту: Реализация утилит cat
и grep
Глава I: Введение
Проект представляет собой реализацию двух утилит командной строки на языке программирования C: cat
и grep
. Эти утилиты предназначены для работы с текстовыми файлами и предоставляют функционал, аналогичный известным утилитам в Unix-подобных системах. Реализация соответствует стандарту C11 и требованиям POSIX.1-2017.
Глава II: Функциональность
Утилита cat
Описание:
Утилита cat
предназначена для отображения содержимого текстовых файлов, их объединения и создания новых файлов. Она поддерживает следующие функции:
- Отображение содержимого файла: Команда выводит содержимое указанного файла на стандартный вывод.
- Объединение файлов: Возможность объединения нескольких файлов в один.
- Создание новых файлов: Создание нового файла путем записи содержимого исходных файлов.
Поддерживаемые опции:
-b
: Нумерует только непустые строки.-e
: Отображает символы конца строки как$
.-n
: Нумерует все строки.-s
: Сжимает несколько смежных пустых строк.-t
: Отображает табуляции как^I
.
Файлы исходного кода и сборки утилиты расположены в директории src/cat/
. Итоговый исполняемый файл называется s21_cat
.
Утилита grep
Описание:
Утилита grep
предназначена для поиска строк, соответствующих заданному шаблону, в текстовых файлах. Она предоставляет функционал для работы с регулярными выражениями и фильтрации данных.
Поддерживаемые опции:
-e
: Определяет шаблон для поиска.-i
: Игнорирует различия регистра.-v
: Инвертирует результат поиска (выводит строки, не соответствующие шаблону).-c
: Выводит только количество совпадающих строк.-l
: Выводит имена файлов, содержащих совпадения.-n
: Предваряет каждую строку номером.-h
: Не выводит имена файлов.-s
: Подавляет сообщения об ошибках.-f file
: Получает шаблоны из файла.-o
: Печатает только совпадающие части строки.
Файлы исходного кода и сборки утилиты расположены в директории src/grep/
. Итоговый исполняемый файл называется s21_grep
.
Дополнительные опции (необязательно реализованные):
- Поддержка опций
-h
,-s
,-f
,-o
в улучшенной версии утилитыgrep
. - Поддержка комбинаций флагов, таких как
-iv
и-in
.
Глава III: Технические детали
Язык программирования и стандарты:
- Код написан на языке C стандарта C11.
- Используется компилятор gcc.
- Ориентирование на стандарт POSIX.1-2017.
- Следование стилю кода Google Style.
Сборка и тестирование:
- Сборка выполняется с помощью Makefile.
- Для интеграционного тестирования использованы реальные утилиты Bash для сравнения.
- Программное обеспечение разделено на модули для переиспользования кода и облегчения поддержки.
Структура проекта:
- Исходные и заголовочные файлы для
cat
иgrep
расположены в папкахsrc/cat/
иsrc/grep/
соответственно.