(c) Larry Ewing, Simon Budig, Garrett LeSage
с 1994 г.

Кафедра Информатики и Математического Обеспечения

ПетрГУ | ИМиИТ | О кафедре | Мобильные платформы | Лаборатория ИТС | Семинары НФИ/AMICT
Сотрудники | Выпускники | Учебный процесс | Табель-календарь | Курсовые и выпускные работы
Вычислительные ресурсы | Публикации | Архив новостей | Контактная информация

Цель работы

Решить поставленную задачу наиболее эффективным способом с использованием средств, изученных в курсе.

Описание работы

Необходимо написать сценарий shell replace.sh, позволяющий заменить все вхождения заданной строки (далее будем называть ее строкой поиска) другой строкой (далее будем называть ее подстановкой) во всех регулярных файлах некоторого заданного дерева каталогов. Строка поиска, подстановка и путь к корню дерева каталогов задаются параметрами командной строки. Строка поиска и подстановка могут содержать любые символы, за исключением символа перевода строки и одинарной кавычки.

Синтаксис вызова сценария: replace.sh [ -d путь ] 'строка поиска' 'подстановка'. Если путь опущен, корнем дерева полагается текущий каталог. Сам сценарий, если даже попадает в дерево, не обрабатывается.

Наиболее жесткое ограничения заключается в "необучаемости" пользователя. Это означает, что строка в одинарных кавычках представляет собой именно то, что предполагает найти/заменить пользователь, или, другими словами, заставить пользователя внедрять в строку дополнительные символы или каким-то образом модифицировать ее содержимое, чтобы обеспечить работоспособность сценария, нельзя.

Критерии оценки работы

Это задание только для супербизонов. Оно не оценивается.