← До списку лабораторних по Linux
Повний опис / сценарій лабораторної:
Мета: навчитися комбінувати grep, awk та sed у одному конвеєрі для аналізу лог файлів.
Крок 1. Створити тестовий лог файл.
Команда: cat > ~/pipeline_lab.log
Пояснення: введіть кілька рядків з різними рівнями логів наприклад INFO, WARN, ERROR та завершить введення.
Крок 2. Використати grep для фільтрації тільки рядків ERROR.
Команда: grep "ERROR" ~/pipeline_lab.log
Пояснення: переконайтеся що виводяться лише потрібні записи.
Крок 3. Використати awk для виводу тільки певних колонок.
Пояснення: припустіть що формат логів містить дату, час, рівень та повідомлення, виведіть рівень і повідомлення.
Крок 4. Використати sed для заміни частини тексту.
Команда: grep "ERROR" ~/pipeline_lab.log | sed "s/ERROR/ERR/g"
Пояснення: перевірте що рівень змінено.
Крок 5. Побудувати конвеєр який рахує кількість записів кожного рівня.
Приклад: awk '{print $3}' ~/pipeline_lab.log | sort | uniq -c
Пояснення: замініть номер колонки на відповідний вашому формату.
Крок 6. Додати до конвеєра фільтр по даті.
Пояснення: використайте grep або awk щоб враховувати лише записи за конкретний день.
Крок 7. Зберегти конвеєр у невеликий скрипт.
Команда: echo "#!/usr/bin/env bash" > ~/run_pipeline.sh; echo "awk ..." >> ~/run_pipeline.sh; chmod +x ~/run_pipeline.sh
Пояснення: замініть трикрапку на свій готовий конвеєр.
Крок 8. Запустити скрипт і перевірити результат.
Команда: ./run_pipeline.sh
Крок 9. Обговорити продуктивність конвеєрів на великих файлах.
Пояснення: іноді доцільно спочатку робити грубий grep, а потім складніші обробки.
Крок 10. Міні звіт.
Завдання: опишіть приклад робочого завдання де конвеєр з grep, awk, sed замінює складний однорядковий скрипт.