«…Труд избавляет человека от трех великих зол: скуки, порока, нужды…»

Спец курс (Автоматизация процесса проектирования)/Практические задания 3 — различия между версиями

Материал из Wiki
Перейти к: навигация, поиск
(Перед выполнение ознакомиться с правилами оформления задания)
(Перед выполнение ознакомиться с правилами оформления задания)
 
(не показана 1 промежуточная версия 1 участника)
Строка 2: Строка 2:
 
== Перед выполнение ознакомиться с правилами оформления задания ==
 
== Перед выполнение ознакомиться с правилами оформления задания ==
 
* [[Спец курс (Автоматизация процесса проектирования)/Практические задания (Пример)]]
 
* [[Спец курс (Автоматизация процесса проектирования)/Практические задания (Пример)]]
# Двойное пространство между строками  
+
 
# Двойное пространство между строками исключая пустые строки (на выходе содержатся не больше одной пустой строки между двумя строками с текстом)  
+
== Задания по SED ==
# Тройное пространство между строками
+
Задание будет успешно выполнено, если были использованы конструкции языка bash и редактор sed (не допускается использовать другие утилиты кроме SED, допускается помогать при обработке из bash).
# Удалить каждую вторую строку  
+
 
# Вставить пустую строку перед каждой строкой соответствующей регулярному выражению "regex"  
+
# Двойное пространство между строками между каждой второй строкой
# Вставить пустую строку после каждой строки соответствующей регулярному выражению "regex"  
+
# Тройное пространство между строками исключая пустые строки (на выходе содержатся не больше одной пустой строки между двумя строками с текстом)  
# Вставить пустую строку перед и после каждой строки соответствующей регулярному выражению "regex"  
+
# Десятерное пространство между каждой 2-ой строкой
# Нумерация каждой стоки в файле filename. Используя отступ (tab) (смотрите примечание по '\t' в конце документа) вместо пустой строки  
+
# Удалить каждую пятую строку  
# Нумерация каждой строки в файле filename (номер слева, выравненный по правому краю)  
+
# Вставить пустую строку и строку с первым символом # перед каждой строкой соответствующей регулярному выражению "regex"  
# Нумерация каждой строки в файле filename, с выводом номера только для не пустых строк  
+
# Вставить строку с символом /* после каждой строки соответствующей регулярному выражению "begin"  
# Подсчет строк (эмуляция "wc -l")  
+
# Вставить строку с символом */ после каждой строки соответствующей регулярному выражению "end"  
# Преобразование и замена текста
+
# Нумерация каждой 4 строки в файле filename. Используя отступ для отделения номера от строки
# Удалить все пробелы и символы табуляции в начале каждой строки файла (смотрите примечание по табуляции в конце документа)
+
# Нумерация каждой строки в файле filename (номер слева максимум 9-значный, выравненный по правому краю)  
# Удалить все пробелы и символы табуляции в конце каждой строки файла (смотрите примечание по табуляции в конце документа)
+
# Нумерация каждой строки в файле filename, с выводом номера только для не пустых строк и каждой с номером кратным 3
# Удалить все пробелы и символы табуляции в начале и конце каждой строки файла (смотрите примечание по табуляции в конце документа)
+
# Подсчет строк (эмуляция "wc -l") в файле содержащих выражение "begin"
# Вставить 5 пробелов в начале каждой строки (создать смещение страницы)  
+
# Удалить все пробелы и символы табуляции в начале каждой строки файла  
# Расположить весь текст по правому краю столбца шириной в 79 символов  
+
# Удалить все пробелы и символы табуляции в конце каждой строки файла  
# (устанавливает как 78 плюс 1 пробельный символ)
+
# Удалить все пробелы и символы табуляции в начале и конце каждой строки файла
# Центрировать весь текст посередине столбца шириной 79 символов. В версии 1, пробелы добавляются в начало и конец строки. В версии 2, пробелы добовляются только в начало строки
+
# Удалить все повторяющиеся пробелы и символы табуляции в начале и конце и в средине каждой строки файла
# Поиск и замеа "foo" на "bar" в каждой строке  
+
# Вставить 3 табуляции в начале каждой строки (создать смещение страницы)  
# (замена только первого совпадения в строке)  
+
# Расположить весь текст по правому краю столбца шириной в 80 символов  
# (замена первых 4рех совпадений в строке)  
+
# Центрировать весь текст посередине столбца шириной 108 символов.  
# (замена ВСЕХ совпадений в строке)  
+
# Поиск и замена "Hi\bro" на "Yo\bro" в каждой строке  
# (замена предпоследнего совпадения)  
+
# Поиск и замена "Hi\bro" на "Yo\bro" (замена только первого совпадения в строке)  
# (замена только последнего совпадения)  
+
# Поиск и замена "Hi\bro" на "Yo\bro" (замена первых 4рех совпадений в строке)  
# Замена "foo" на "bar" ТОЛЬКО для строк содержащих "baz"  
+
# Поиск и замена "Hi\bro" на "Yo\bro" (замена ВСЕХ совпадений в строке)  
# Замена "foo" на "bar" ИСКЛЮЧАЯ строки содержащие "baz"  
+
# Поиск и замена "Hi\bro" на "Yo\bro" (замена предпоследнего совпадения)  
# Замена "scarlet" или "ruby", или "puce" на "red"  
+
# Поиск и замена "Hi\bro" на "Yo\bro" (замена только последнего совпадения)  
 +
# Замена "Hi\bro" на "Yo\bro" ТОЛЬКО для строк содержащих "Black"  
 +
# Замена "Hi\bro" на "Yo\bro" ИСКЛЮЧАЯ строки содержащие "Black"  
 +
# Замена "scarlet" или "ruby", или "puce" на "red", или "back" на "white"  
 
# Перевернуть последовательность строк (эмуляция "tac")  
 
# Перевернуть последовательность строк (эмуляция "tac")  
# Перевернуть каждую строку в файле задом наперед (эмуляция "rev")
+
# Перевернуть каждую строку в файле задом наперед  
# Соединить каждую пару строк бок о бок (подобно "paste")
+
# Перевернуть каждую слово в файле задом наперед
 +
# Соединить каждую две (пару) строк бок о бок  
 
# Если линия заканчивается обратной косой чертой "\", то присоединить следующую линию  
 
# Если линия заканчивается обратной косой чертой "\", то присоединить следующую линию  
# Если линия начинается с знака "=", то присоединить ее к предыдущей линии и заменить "=" пробелом  
+
# Если линия начинается с знака "==", то присоединить ее к предыдущей линии и заменить "==" пробелом  
 
# Добавить запятые к строке из чисел, изменяя "1234567" на "1,234,567"  
 
# Добавить запятые к строке из чисел, изменяя "1234567" на "1,234,567"  
# Добавить запятые к числу с десятичной частью и знаком минуса (GNU sed)
+
# Добавить символы подчеркивания к строке из чисел, изменяя "ААААFFFFВВВВ1234" на "64'hАААА_FFFF_ВВВВ_1234"
# Добавить пустую строку через каждые 5 строк (после строк 5, 10, 15, 20, и т.д.)  
+
# Добавить запятые к числу с десятичной частью и знаком минуса
# Выборочная печать некоторых строк
+
# Добавить две пустые строки через каждые 5 строк (после строк 5, 10, 15, 20, и т.д.)  
# Печатать первые 10 линий файла (эмуляция "head")
+
# Печатать первые 10 линий файла
# Печатать первую строку файла (эмуляция "head -1")
+
# Печатать первые 30-100 линий файла  
# Печатать последние 10 строк файла (эмуляция "tail")
+
# Печатать первую строку файла  
# Печатать последние 2 строки файла (эмуляция "tail -2")
+
# Печатать последние 20 строк файла  
# Печатать последнюю строку файла (эмуляция "tail -1")
+
# Печатать последние 30 строк файла кроме последних 5 строки с конца файла  
 +
# Печатать последнюю строку файла  
 
# Печатать предпоследнюю строку в файле  
 
# Печатать предпоследнюю строку в файле  
# Печатать только те строки, которые совпадают с регулярным выражением (эмуляция "grep")
+
# Печатать только те строки, которые совпадают с регулярным выражением  
# Печатать только те строки, которые НЕ совпадают с регулярным выражением (эмуляция "grep -v")
+
# Печатать только те строки, которые НЕ совпадают с регулярным выражением  
# Печатать строку непосредственно перед регулярным выражением, но не печатать строку содержащую регулярное выражение  
+
# Печатать 3 строк непосредственно перед регулярным выражением, но не печатать строку содержащую регулярное выражение  
# Печатать строку непосредственно после регулярного выражения, но не печатать строку содержащую регулярное выражение  
+
# Печатать 5 строк непосредственно после регулярного выражения, но не печатать строку содержащую регулярное выражение  
# Печатать по одной строке перед и после регулярного выражения, с указанием номера строки совпадающей с регулярным выражением (симуляция "grep -A1 -B1")  
+
# Печатать по две строки перед и после регулярного выражения, с указанием номера строки совпадающей с регулярным выражением (симуляция "grep -A1 -B1")  
 
# Печать строк, совпадающих с регулярными выражениями AAA, BBB и CCC одновременно (в любой последовательности)  
 
# Печать строк, совпадающих с регулярными выражениями AAA, BBB и CCC одновременно (в любой последовательности)  
 
# Печать строк, совпадающих с регулярными выражениями AAA, BBB и CCC одновременно (в конкретной последовательности)  
 
# Печать строк, совпадающих с регулярными выражениями AAA, BBB и CCC одновременно (в конкретной последовательности)  
# Печать строк, совпадающих с любым регулярным выражением AAA или BBB, или CCC (эмуляция "egrep")
+
# Печать строк, совпадающих с любым регулярным выражением AAA или BBB, или CCC  
# Печатать абзац если он содержит AAA (пустая строка разделяет абзацы) (в HHsed v1.5 необходимо вставить 'G;' после 'x;')  
+
# Печатать абзац если он содержит AAA (пустая строка разделяет абзацы)  
# Печатать абзац если он содержит AAA, BBB и CCC (в любой последовательности) (в HHsed v1.5 необходимо вставить 'G;' после 'x;')  
+
# Печатать абзац если он содержит AAA, BBB и CCC (в любой последовательности) (символ табуляции вначале строки абзацы)  
# Печатать абзац если он содержит AAA или BBB, или CCC (в HHsed v1.5 необходимо вставить 'G;' после 'x;')
+
# Печатать абзац если он содержит AAA или BBB, или CCC  
# Печатать строки длиной равной или большей 65 символов  
+
# Печатать строки длиной равной или большей 16 символов  
# Печатать строки длиной меньше или равной 65 символов  
+
# Печатать строки длиной меньше или равной 35 символов  
 
# Печатать часть файла начиная от совпадения с регулярным выражением и до конца файла  
 
# Печатать часть файла начиная от совпадения с регулярным выражением и до конца файла  
# Печатать часть файла основываясь на номерах строк (строки 8-12, включительно)  
+
# Печатать часть файла основываясь на номерах строк (строки 4-19, включительно)  
 
# Печатать строку под номером 52  
 
# Печатать строку под номером 52  
# Начиная с 3ей строки печатать каждую седьмую строку в файле  
+
# Начиная с 3-ей строки печатать каждую седьмую строку в файле  
 
# Печатать часть файла между двумя регулярными выражениями (включительно)  
 
# Печатать часть файла между двумя регулярными выражениями (включительно)  
# Избирательное удаление определенных строк
 
 
# Печатать все линии ИСКЛЮЧАЯ часть между двумя регулярными выражениями  
 
# Печатать все линии ИСКЛЮЧАЯ часть между двумя регулярными выражениями  
# Удалить дубликаты последовательных строк в файле (эмуляция "uniq"). Первая строка в наборе дубликатах строк удерживается от удаления  
+
# Удалить дубликаты последовательных строк в файле. Первая строка в наборе дубликатах строк удерживается от удаления  
 
# Удалить дубликаты непоследовательных строк в файле. Остерегайтесь переполнения буфера или используйте GNU sed  
 
# Удалить дубликаты непоследовательных строк в файле. Остерегайтесь переполнения буфера или используйте GNU sed  
# Печатать только дубликаты строк (эмуляция "uniq -d")
+
# Печатать только дубликаты строк  
# Удалить первые 10 строк в файле  
+
# Удалить первые 10 строк в файле и одну последнюю
 
# Удалить последнюю строку в файле  
 
# Удалить последнюю строку в файле  
# Удалить 2 последние строки файла  
+
# Удалить 3 последние строки файла  
# Удалить последние 10 строк файла  
+
# Удалить последние 4 строки файла  
# Удалить каждую восьмую строку в файле  
+
# Удалить каждую вторую строку в файле  
# Удалить строки совпадающие с регулярным выражением  
+
# Удалить каждую вторую строки совпадающие с регулярным выражением  
# Удалить ВСЕ пустрые строки из файла (эмуляция "grep '.' ")
+
# Удалить ВСЕ пустые строки из файла  
 
# Удалить все последовательности пустых строк из файла исключая первую. Также удалить все пустые строки в начале и в конце файла (эмуляция "cat -s")  
 
# Удалить все последовательности пустых строк из файла исключая первую. Также удалить все пустые строки в начале и в конце файла (эмуляция "cat -s")  
# (Версия 1, допускается 0 пустых строк в начале и 1 в конце файла)
 
# (Версия 2, допускается 1 пустая строка в начале и 0 в конце файла)
 
 
# Оставить последовательность пустых строк не более двух одновременно  
 
# Оставить последовательность пустых строк не более двух одновременно  
 
# Удалить все пустые строки в начале файла  
 
# Удалить все пустые строки в начале файла  
 
# Удалить все пустые строки в конце файла  
 
# Удалить все пустые строки в конце файла  
 
# Удалить последнюю непустую строку в каждом абзаце  
 
# Удалить последнюю непустую строку в каждом абзаце  
# Отсортировать абзацы файла в алфавитном порядке. Абзацы разделены пустой строкой.
+
# Отсортировать абзацы файла в алфавитном порядке. Абзацы разделены символом табуляции.

Текущая версия на 03:58, 31 марта 2018

Лекции SCRIPT

Лекции

Практические задания
Тесты

Табель успеваемости

Экзамен

Доп. материалы

Перед выполнение ознакомиться с правилами оформления задания

Задания по SED

Задание будет успешно выполнено, если были использованы конструкции языка bash и редактор sed (не допускается использовать другие утилиты кроме SED, допускается помогать при обработке из bash).

  1. Двойное пространство между строками между каждой второй строкой
  2. Тройное пространство между строками исключая пустые строки (на выходе содержатся не больше одной пустой строки между двумя строками с текстом)
  3. Десятерное пространство между каждой 2-ой строкой
  4. Удалить каждую пятую строку
  5. Вставить пустую строку и строку с первым символом # перед каждой строкой соответствующей регулярному выражению "regex"
  6. Вставить строку с символом /* после каждой строки соответствующей регулярному выражению "begin"
  7. Вставить строку с символом */ после каждой строки соответствующей регулярному выражению "end"
  8. Нумерация каждой 4 строки в файле filename. Используя отступ для отделения номера от строки
  9. Нумерация каждой строки в файле filename (номер слева максимум 9-значный, выравненный по правому краю)
  10. Нумерация каждой строки в файле filename, с выводом номера только для не пустых строк и каждой с номером кратным 3
  11. Подсчет строк (эмуляция "wc -l") в файле содержащих выражение "begin"
  12. Удалить все пробелы и символы табуляции в начале каждой строки файла
  13. Удалить все пробелы и символы табуляции в конце каждой строки файла
  14. Удалить все пробелы и символы табуляции в начале и конце каждой строки файла
  15. Удалить все повторяющиеся пробелы и символы табуляции в начале и конце и в средине каждой строки файла
  16. Вставить 3 табуляции в начале каждой строки (создать смещение страницы)
  17. Расположить весь текст по правому краю столбца шириной в 80 символов
  18. Центрировать весь текст посередине столбца шириной 108 символов.
  19. Поиск и замена "Hi\bro" на "Yo\bro" в каждой строке
  20. Поиск и замена "Hi\bro" на "Yo\bro" (замена только первого совпадения в строке)
  21. Поиск и замена "Hi\bro" на "Yo\bro" (замена первых 4рех совпадений в строке)
  22. Поиск и замена "Hi\bro" на "Yo\bro" (замена ВСЕХ совпадений в строке)
  23. Поиск и замена "Hi\bro" на "Yo\bro" (замена предпоследнего совпадения)
  24. Поиск и замена "Hi\bro" на "Yo\bro" (замена только последнего совпадения)
  25. Замена "Hi\bro" на "Yo\bro" ТОЛЬКО для строк содержащих "Black"
  26. Замена "Hi\bro" на "Yo\bro" ИСКЛЮЧАЯ строки содержащие "Black"
  27. Замена "scarlet" или "ruby", или "puce" на "red", или "back" на "white"
  28. Перевернуть последовательность строк (эмуляция "tac")
  29. Перевернуть каждую строку в файле задом наперед
  30. Перевернуть каждую слово в файле задом наперед
  31. Соединить каждую две (пару) строк бок о бок
  32. Если линия заканчивается обратной косой чертой "\", то присоединить следующую линию
  33. Если линия начинается с знака "==", то присоединить ее к предыдущей линии и заменить "==" пробелом
  34. Добавить запятые к строке из чисел, изменяя "1234567" на "1,234,567"
  35. Добавить символы подчеркивания к строке из чисел, изменяя "ААААFFFFВВВВ1234" на "64'hАААА_FFFF_ВВВВ_1234"
  36. Добавить запятые к числу с десятичной частью и знаком минуса
  37. Добавить две пустые строки через каждые 5 строк (после строк 5, 10, 15, 20, и т.д.)
  38. Печатать первые 10 линий файла
  39. Печатать первые 30-100 линий файла
  40. Печатать первую строку файла
  41. Печатать последние 20 строк файла
  42. Печатать последние 30 строк файла кроме последних 5 строки с конца файла
  43. Печатать последнюю строку файла
  44. Печатать предпоследнюю строку в файле
  45. Печатать только те строки, которые совпадают с регулярным выражением
  46. Печатать только те строки, которые НЕ совпадают с регулярным выражением
  47. Печатать 3 строк непосредственно перед регулярным выражением, но не печатать строку содержащую регулярное выражение
  48. Печатать 5 строк непосредственно после регулярного выражения, но не печатать строку содержащую регулярное выражение
  49. Печатать по две строки перед и после регулярного выражения, с указанием номера строки совпадающей с регулярным выражением (симуляция "grep -A1 -B1")
  50. Печать строк, совпадающих с регулярными выражениями AAA, BBB и CCC одновременно (в любой последовательности)
  51. Печать строк, совпадающих с регулярными выражениями AAA, BBB и CCC одновременно (в конкретной последовательности)
  52. Печать строк, совпадающих с любым регулярным выражением AAA или BBB, или CCC
  53. Печатать абзац если он содержит AAA (пустая строка разделяет абзацы)
  54. Печатать абзац если он содержит AAA, BBB и CCC (в любой последовательности) (символ табуляции вначале строки абзацы)
  55. Печатать абзац если он содержит AAA или BBB, или CCC
  56. Печатать строки длиной равной или большей 16 символов
  57. Печатать строки длиной меньше или равной 35 символов
  58. Печатать часть файла начиная от совпадения с регулярным выражением и до конца файла
  59. Печатать часть файла основываясь на номерах строк (строки 4-19, включительно)
  60. Печатать строку под номером 52
  61. Начиная с 3-ей строки печатать каждую седьмую строку в файле
  62. Печатать часть файла между двумя регулярными выражениями (включительно)
  63. Печатать все линии ИСКЛЮЧАЯ часть между двумя регулярными выражениями
  64. Удалить дубликаты последовательных строк в файле. Первая строка в наборе дубликатах строк удерживается от удаления
  65. Удалить дубликаты непоследовательных строк в файле. Остерегайтесь переполнения буфера или используйте GNU sed
  66. Печатать только дубликаты строк
  67. Удалить первые 10 строк в файле и одну последнюю
  68. Удалить последнюю строку в файле
  69. Удалить 3 последние строки файла
  70. Удалить последние 4 строки файла
  71. Удалить каждую вторую строку в файле
  72. Удалить каждую вторую строки совпадающие с регулярным выражением
  73. Удалить ВСЕ пустые строки из файла
  74. Удалить все последовательности пустых строк из файла исключая первую. Также удалить все пустые строки в начале и в конце файла (эмуляция "cat -s")
  75. Оставить последовательность пустых строк не более двух одновременно
  76. Удалить все пустые строки в начале файла
  77. Удалить все пустые строки в конце файла
  78. Удалить последнюю непустую строку в каждом абзаце
  79. Отсортировать абзацы файла в алфавитном порядке. Абзацы разделены символом табуляции.