Конкурс состоит из 10 заданий, каждое из которых оценивается в 10 баллов при правильном выполнении задания и соответствии всем требованиям.
Максимальное количество баллов по всем заданиям для конкурса – 100.
Задание №1
Создать файл определенного формата:
YYYY-DD-MM hh:mm 1 12 123 1234 12345 123456 …. 123456789101112131415 ….
Здесь, YYYY-MM-DD – текущая дата
hh:mm – текущее время
Далее идут строки с числами от 1 до N, где N передается как аргумент
Формат входных данных:
ARG1 – путь до файла с результатами работы скрипта
ARG2 – число N
Формат выходных данных:
Формат был описан выше.
Пример использования:
./script.sh /tmp/results.txt 15
Задание №2
Дан каталог, содержащий определенное число файлов с различными расширениями. Создать файл, содержащий информацию и файлах в следующем формате:
Путь_до_каталога имя_файла_файла_без_расширения расширение./tmp/mydir file txt ./tmp/mydir file csv ./tmp/mydir file24 jpeg ./tmp/mydir myvideo avi ./tmp/mydir/dir2 file txt ./tmp/mydir/dir2 photo15 jpeg |
Формат входных данных:
ARG1 – путь до каталога, содержащего файлы
ARG2 – путь до файла, содержащего результаты работы скрипта
Формат выходных данных:
Каждый файл представлен в виде отдельной строки определенного формата
Путь_до_каталога имя_файла_файла_без_расширения расширение
Пример использования:
/script.sh /tmp/mydir /tmp/results.txt
Задание №3
Существует файл-шаблон. Создать файл из шаблона, заменяя все служебные комбинации на актуальные данные. {{1}} должно быть заменено на аргумент, передаваемый сразу после имени результирующего файла. {{2}} должно быть заменено на следующий параметр и т.д.. Всего скрипт должен обрабатывать максимум до {{9}}
Формат входных данных:
ARG1 – путь до файла-шаблона
ARG2 – путь до результирующего файла
ARG3 – аргумент, на который должны быть заменены все вхождения группы символов {{1}}
ARG4 – -//- группа символов {{2}}
Всего скрипту максимально могут быть переданы параметры до {{9}}
Формат выходных данных:
Результат работы должен быть сохранен в отдельный файл
Пример использования:
./script.sh /tmp/source.txt /tmp/results.txt Artemii US Denver, где
{{1}} = Chris
{{2}} = US
{{3}} = Cupertino
Задание №4
Посчитать интеграл(x*x*x-2x+1)dx на участке от A до B с шагом H методом трапеции с точностью 10^(-5). Результат отобразить на экране.
Формат входных данных:
ARG1 – A начало отрезка
ARG2 – B конец отрезка
ARG3 – H шан
Формат выходных данных:
Значение найденного интеграла
Пример:
0.552323
Пример использования:
./script.sh -5 5 0.1
Задание №5
Распечатать в файле числовой ряд из простых чисел.
Формат входных данных:
ARG1 – количество простых чисел, начиная с первого
ARG2 – путь до файла с результатами работы
Формат выходных данных:
Каждая строка содержит одно число в порядке возрастания
Пример использования:
./script.sh 5 /tmp/results.txt
Задание №6
Проанализировать текст, содержащийся в файле с исходными данными. Вывести файл на экране, подсвечивая все слова, содержащие определенную букву.
Символы | Цвет подсветки |
A a O o | Красный |
Y y W w | Зеленый |
H h D d | Желтый |
U u | Синий |
Формат входных данных:
ARG1 – путь до файла
Формат выходных данных:
Тест на экране, где отдельные слова выделены определенным цветом
Пример использования:
./script.sh /tmp/source.txt
Задание №7
Дан каталог, содержащий определенные файлы и каталоги. Требуется найти и удалить файлы, соответствующие сразу всем критериям:
- Принадлежит пользователю USER
- Файл больше SIZE байт
- Текстовый файл (расширение .txt)
- Файл содержит хотя бы одно упоминание месяцев года на англ языке (January, February и тп)
Формат входных данных:
ARG1 – исходный каталог
ARG2 – имя пользователя
ARG3 – размер файла
Формат выходных данных:
В исходном каталоге удалены все файлы, соответствующие всем критериям сразу
Пример использования:
./script.sh /tmp/mydir user15 10240
Задание №8
Дан каталог с определенным набором файлов в формате NNN.jpg, где N – цифра от 0 до 9. Требуется переименовать файлы в формате “photo-MMM.jpg”, где MMM- порядковый номер фотографии. Порядковые имена MMM идут подряд без “пустых мест”. Если порядковый номер меньше 100, то требуется добавить лидирующие нули.
Формат входных данных:
ARG1 – имя каталога с данными
Формат выходных данных:
Имея файлы 015.jpg, 055.jpg, 998.jpg и 998.jpg скрипт должен переименовать их как:
015.jpg – > 001.jpg
055.jpg – > 002.jpg
998.jpg – > 003.jpg
999.jpg – > 004.jpg
Пример использования:
./script.sh /tmp/source.dir
Задание №9
Дан текстовый файл. Найти в файле все упоминания корректной даты (включая анализ на корректность 29 февраля и тп) в формате YYYY-MM-DD. Результаты вывести в отдельный файл.
Формат входных данных:
ARG1 – имя исходного файла
ARG2 – имя файла с результатами работы
Формат выходных данных:
Каждый найденный образец корректной даты должен быть сохранен в виде новой строки в результирующем файле
Пример использования
./script.sh /tmp/source.txt /tmp/results.txt
Задание №10
Расшифровать зашифрованный файл. Результат сохранить в отдельный файл. Алгоритм шифрования описан ниже.
Все символы оставлены без изменений, кроме указанных ниже.
Символ | Заменен на |
A | B |
B | A |
a | c |
c | a |
Формат входных данных:
ARG1 – путь до зашифрованного файла
ARG2 – путь до расшифрованного файла (результат работы)
Формат выходных данных:
Текстовый файл с обратной заменой символов.
Пример использования:
./script.sh /tmp/source.txt /tmp/results.txt