3  Текстовые редакторы и утилиты (nano, vim, sed, awk)

3.1 Рекомендуемая литература

3.2 Цели и задачи

Цель - освоить методы работы с текстом в терминале

Задачи:

  1. Решить задачи из интерактивного учебника по vim
  2. Ответить на вопросы по содержимому файлов с использованием специализированных программ.

3.3 Задание

3.3.1 Работа с vim

  1. Установить vim и vimtutor
  2. Выполнить все уроки из первых четырёх разделов vimtutor. Показать преподавателю и ответить на вопросы. Это задание не нужно отражать в отчёте.

3.3.2 Работа с текстовыми утилитами

Файлы для выполнения заданий скачайте по ссылке.

3.3.2.1 grep

Воспользовавшись программой grep ответьте на следующие вопросы о файле example_log.txt

  1. Сколько в нем записей об обшибках и предупреждениях
  2. На какое время запланирована перезагрузка?
  3. Какие в файле соержаться сообщения об ошибках (нужны только они, без сопутствующей информации в скобках и времени возникновения)?
  4. Найдите записи за 24 октября 2023 года
  5. Найти все IP-адреса в логах (только вывод IP) - IP адрес, грубо говоря, это последовательность из 4 чисел, разделенных точкой.

3.3.2.2 sed

Воспользовавшись программой sed отредактируйте файл poem.txt

  1. Удалить все строки с разделителями *** Глава N ***:

  2. Изменить формат дат с DD/MM/YYYY на YYYY-MM-DD:

  3. Добавить [EDIT]в начало строк, содержащих слово “дата”:

  4. Удалить даты в формате YYYY-MM-DD:

  5. Заменить все вхождения “ветер” на “ВЕТЕР” (регистрозависимо):

3.3.2.3 awk

Воспользовавшись программой awk ответьте на вопросы по файлу titanic.csv. Это знаменитый датасет о пассажирах Титаника. Информацию о нём вы можете найти здесь.

  • Какой средний возраст женщин в таблице?

  • Выведите все нечетные строки

  • Сколько выживших мужчин было в первом и третьем классе?

  • Замените в первую колонку на колонку с именами пассажиров.

3.4 Вопросы для защиты

  1. Использование vim
  2. Регулярные выражения. Синтаксис
  3. Возможности grep
  4. Возможности sed
  5. Возможности awk
  6. Пайплайны в командной строке.