Цель работы
Решить поставленную задачу наиболее эффективным способом с использованием средств, изученных в курсе.
Описание работы
Для решения предлагается два блока заданий. Блок I содержит задания базового уровня и оценивается в 4 балла. Блок II содержит задания повышенной сложности и оценивается в 8 баллов. Студент выбирает один, наиболее понравившийся ему блок заданий.
Блок I (4 балла)
Сценарий trimhtml.sh В каталоге, заданном первым позиционным параметром переименовать все файлы вида имя.расширение?текст, представляющие собой просто HTML-документы, подставив в качестве имени имя.html. Расширение задается вторым позиционным параметром. Сценарий должен контролировать возможность появления файлов с одинаковыми именами и автоматически дописывать к имени порядковый номер. Например, в результате обработки файлов
- index.php?search=linux
- index.php?question=howareyou
- index.php?animal=dare
- index.html
- index1.html
- index2.html
Блок II (8 баллов)
Необходимо написать сценарий shell replace.sh, позволяющий заменить все вхождения заданной строки (далее будем называть ее строкой поиска) другой строкой (далее будем называть ее подстановкой) во всех регулярных файлах некоторого заданного дерева каталогов. Строка поиска, подстановка и путь к корню дерева каталогов задаются параметрами командной строки. Строка поиска и подстановка могут содержать любые символы, за исключением символа перевода строки и одинарной кавычки.
Синтаксис вызова сценария: replace.sh [ -d путь ] 'строка поиска' 'подстановка'. Если путь опущен, корнем дерева полагается текущий каталог. Сам сценарий, если даже попадает в дерево, не обрабатывается.
Наиболее жесткое ограничение заключается в "необучаемости" пользователя. Это означает, что строка в одинарных кавычках представляет собой именно то, что предполагает найти/заменить пользователь, или, другими словами, заставить пользователя внедрять в строку дополнительные символы или каким-то образом модифицировать ее содержимое, чтобы обеспечить работоспособность сценария, нельзя.
Критерии оценки работы
Сценарий должен быть снабжен вводным комментарием (можно ориентироваться на приведенный ниже пример), текст сценария должен быть подробно откомментирован.
#!/bin/bash ########################################################################### # Сценарий : dtox - преобразование текстового файла DOS к станданру UNIX # Автор : Хайнер Стивен # Версия : 1.1 # Дата : 2002.02.26 ########################################################################### # Описание # Заменяет последовательности "CR LF" признаком конца строки "LF" # Замечания # Не преобразует символ конца файла DOS CTRL-Z (ASCII 26). ###########################################################################
Блок I (Блок II) заданий оценивается в 4 балла (8 баллов) при условии соблюдения срока, определенного для данной лабораторной работы. При этом задание должно быть выполнено полностью, результат должен соответствовать требованиям задания, автор обязан понимать собственное решение. При несоблюдении сроков сдачи задания, базовый балл уменьшается вдвое каждую неделю после срока.