Домашняя работа Усенко Елизавета Валерьевна K3162, Информ 1 K24 1.2
Описание:
-
Цель работы: Изучить работу с утилитой grep для поиска текстовой информации в файлах, а также применение регулярных выражений для фильтрации данных.
-
Ссылки на материалы:
- Создайте тестовый файл:
echo -e "Linux is great.\nLearning grep is useful.\nGrep helps find text in files.\n" > testfile.txt
- Поиск строки с ключевым словом "grep":
grep "grep" testfile.txt
- Результат:
Learning grep is useful.
Grep helps find text in files.
- Создать текстовый файл со следующими данными:
2024-12-25 10:00:01 INFO: Connection from 192.168.0.1
2024-12-15 10:05:12 ERROR: Failed to connect to 10.0.0.5
2024-12-24 10:10:34 INFO: User 192.168.1.5 logged in
2024-12-25 10:15:44 WARNING: Low disk space
2024-12-29 10:20:00 ERROR: Timeout while connecting to 172.16.0.3
- Использовать grep для:
- Поиска строк, содержащих IP-адреса,
- Вывода всех строк, кроме содержащих слово "error" без учета регистра,
- Поиска строк, начинающихся с определенной даты,
- Поиска строк, содержащих слово "INFO" или "WARNING" с указанием номера строки.
- Создать Bash скрипт, который:
- Принимает ключевые слова от пользователя,
- Использует grep для поиска по указанному файлу,
- Записывает найденные строки в новый файл.
- Создание файла:
echo -e "2024-12-25 10:00:01 INFO: Connection from 192.168.0.1\n2024-12-15 10:05:12 ERROR: Failed to connect to 10.0.0.5\n2024-12-24 10:10:34 INFO: User 192.168.1.5 logged in\n2024-12-25 10:15:44 WARNING: Low disk space\n2024-12-29 10:20:00 ERROR: Timeout while connecting to 172.16.0.3" > logs.txt
- Поиск строк, содержащих IP-адреса:
grep -E "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" logs.txt
- Вывод всех строк, кроме содержащих слово "error" без учета регистра:
grep -vi "error" logs.txt
- Поиск строк, начинающихся с определенной даты:
grep "^2024-12-25" logs.txt
- Поиск строк, содержащих слово "INFO" или "WARNING" с указанием номера строки:
grep -n -E "INFO|WARNING" logs.txt
- Bash скрипт:
#!/bin/bash
# Проверяем, передан ли путь к файлу
if [ -z "$1" ]; then
echo "Ошибка: Укажите путь к файлу для поиска."
exit 1
fi
# Проверяем, существует ли файл
if [ ! -f "$1" ]; then
echo "Ошибка: Файл не существует."
exit 1
fi
# Принимаем ключевое слово от пользователя
echo "Введите ключевое слово для поиска:"
read keyword
# Проверяем, введено ли ключевое слово
if [ -z "$keyword" ]; then
echo "Ошибка: Не указано ключевое слово для поиска."
exit 1
fi
# Запрашиваем имя файла для сохранения результатов
echo "Введите имя файла для сохранения результатов:"
read output_file
# Используем grep для поиска по файлу и записываем результат в новый файл
grep "$keyword" "$1" > "$output_file"
echo "Поиск завершен. Результаты сохранены в файл: $output_file"
- Передача прав файлу на исполнение (пусть файл называется search_script.sh, например):
cnmod +x search_script.sh
- Запуск скрипта с передачей ему пути к файлу для поиска (пусть он называется results.txt, например):
./search_script.sh results.txt