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