В этой лабораторной работе мы изучим мощную утилиту командной строки grep
, предназначенную для поиска текста в файлах.
Итаĸ, перед тем ĸаĸ выполнять задание для начаа познакомимся с примерами использований данной команды:
- Создайте файл grep_practice.txt: Этот файл будет содержать тестовый текст для поиска. Заполните его несколькими строками, включающими различные слова и фразы. Пример:
Это тестовый файл для работы с командой grep.
Он содержит несколько строк текста.
Здесь есть слово "grep".
А также фраза "тестовый файл".
grep - это мощная команда.
- Простой поиск: Используйте команду grep для поиска слова "grep" в файле grep_practice.txt:
Убедитесь, что команда выводит соответствующие строки.
grep "grep" grep_practice.txt
- Поиск с флагом -i (регистронезависимый поиск): Попробуйте найти слово "Grep" (с заглавной буквой) с помощью флага -i:
grep -i "grep" grep_practice.txt
Проверьте, что теперь вывод включает строки как с заглавным, так и со строчным "grep".
- Поиск с флагом -n (вывод номеров строк): Найдите слово "строка" с выводом номера строки:
grep -n "строка" grep_practice.txt
Вам предстоит разработать bash-скрипт, который использует команду grep
для поиска и проверки информации о пользователе в нескольких файлах данных.
Bash-скрипт: Принимает три аргумента:
- key: Ключевое слово, определяющее тип данных для поиска ("Почта", "Телефон", "Имя").
- value: Значение, которое нужно найти в файле (email, номер телефона или имя).
- id: ID пользователя для проверки. находит файл с указанным словом , что ищем (почта|телефон|имя)(ключевое слово передаем в параметр первым
В зависимости от key
, скрипт должен выполнить поиск значения в соответствующем файле (mail.txt, phone.txt, nickname.txt).
В найденном файле определяем, присутствует ли то, что пользователь хочет найти (т.е значение value
)
-
Если нашёл, то сравниваем id (переданый третьим параметром и тот, который указан в файле):
- если указан верный, то выводим сообщение(“Вы зарегистрированы, ваш id действительно {id}”)
- если не совпадает, то выводим сообщение(“Вы зарегистрированы, но ваш id - {id}”)
-
Если не нашёл, то скрипт должен вывести: (Вы не зарегистрированы”)
- https://habr.com/ru/companies/itsumma/articles/492932/
- https://ru.hexlet.io/courses/cli-basics/lessons/grep/theory_unit
- https://metanit.com/os/linux/3.3.php

- объявляем переменные и им присваиваем значения, полученные из командной строки
- цикл перебирает три файла: mail.txt, number.txt и nickname.txt
- внутри цикла проверяется, содержится ли key в текущем файле
- команда grep выполняет поиск
key
в текущем файле - если ключ найден, выполняется поиск
value
в текущем файле без учёта регистра (-i). Найденная строка сохраняется в переменнойline
- если строка найдена, из неё извлекается ID
- если ID извлечен, флаг found устанавливается в 1
- сравнивается извлеченный ID с user_id, и выводится соответствующее сообщение
- если флаг found остался 0 (совпадение не найдено), выводится сообщение "Вы не зарегистрированы".