Обработка текста с помощью AWK и sed

Изучите обработку текста с помощью AWK и sed. Этот модуль охватывает основы подстановки в sed, потоковое редактирование в sed, извлечение столбцов в AWK, фильтрацию и логику в AWK, вычисления в AWK. Вы освоите эти важные навыки Linux с помощью практических лабораторных работ и реальных задач.

DevOps EngineerLinuxDevOps

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Превращайте необработанный текст из командной строки в полезные и воспроизводимые результаты с помощью двух мощных инструментов Linux. Этот практический курс формирует ясное понимание sed как потокового редактора и awk как языка обработки полей, чтобы вы выбирали подходящий инструмент, а не собирали хрупкие одноразовые команды.

Вы будете работать с образцами текста, данными в формате CSV, /etc/passwd и журналами веб-сервера. Короткие пошаговые упражнения приведут к итоговому заданию по созданию системного отчёта: очистить записи журнала, извлечь коды состояния HTTP, подсчитать ответы 404, вычислить долю ошибок и сформировать краткий отчёт.

Чему вы научитесь

  • Заменять первое или все совпадения с помощью команд подстановки sed
  • Выбирать читаемые разделители и редактировать файлы на месте с сохранением резервной копии
  • Удалять, вставлять и выборочно выводить строки с помощью адресов и команд sed
  • Извлекать поля с помощью awk, включая собственные разделители и последнее поле через $NF
  • Фильтровать записи по числовым условиям или текстовым шаблонам и нумеровать вывод с помощью NR
  • Структурировать обработку awk с помощью BEGIN, логики для каждой записи, переменных и END
  • Суммировать значения, вести условный подсчёт, вычислять проценты и форматировать отчёт

Для кого этот курс

Этот курс среднего уровня предназначен для пользователей Linux, системных администраторов, изучающих DevOps и разработчиков, которым нужно анализировать и преобразовывать структурированный текст без написания более крупной программы. Он особенно полезен тем, кто регулярно работает с журналами, выводом команд, файлами с разделителями или простыми эксплуатационными отчётами.

Предварительные требования: Базовое знакомство с терминалом Linux, файлами и каталогами, конвейерами и перенаправлением вывода. Предыдущий опыт работы с sed или awk не требуется.

Учебная среда: Терминал Linux в LabEx с подготовленными текстовыми файлами, данными учётных записей, данными в формате CSV и веб-журналами.

Часто задаваемые вопросы

Когда использовать sed, а когда awk?

Используйте sed, если основная задача — изменить, удалить, вставить или выбрать строки текстового потока. Используйте awk, если нужно разбить записи на поля, применить условия, вести счётчики или суммы и собрать отчёт. В итоговом задании оба инструмента применяются последовательно.

Будут ли упражнения изменять реальные системные данные?

Нет. Курс читает /etc/passwd для практики извлечения полей, но не изменяет этот файл. Операции редактирования выполняются с подготовленными файлами проекта, а лабораторная работа по подстановке показывает как предварительный просмотр без изменений, так и sed -i.bak, сохраняющий копию исходного файла.

Что я создам в итоговом задании?

Вы преобразуете образец журнала веб-сервера с кавычками в несколько проверяемых результатов: очищенный журнал, список кодов состояния, количество ответов 404, файл с долей ошибок и однострочную сводку вида Total: 8, 404: 2, Rate: 25%.

Преподаватель

labby
Labby
Labby is the LabEx teacher.