Skip to content

fedorova-m/inf_itmo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Домашнее задание

Лабораторная работа: Проверка регистрации

В этой лабораторной работе мы изучим мощную утилиту командной строки grep, предназначенную для поиска текста в файлах.

Разминка

Итаĸ, перед тем ĸаĸ выполнять задание для начаа познакомимся с примерами использований данной команды:

  1. Создайте файл grep_practice.txt: Этот файл будет содержать тестовый текст для поиска. Заполните его несколькими строками, включающими различные слова и фразы. Пример:
  Это тестовый файл для работы с командой grep.
  Он содержит несколько строк текста.
  Здесь есть слово "grep".
  А также фраза "тестовый файл".
  grep - это мощная команда.
  1. Простой поиск: Используйте команду grep для поиска слова "grep" в файле grep_practice.txt:
    grep "grep" grep_practice.txt
    
    Убедитесь, что команда выводит соответствующие строки.
  2. Поиск с флагом -i (регистронезависимый поиск): Попробуйте найти слово "Grep" (с заглавной буквой) с помощью флага -i:
grep -i "grep" grep_practice.txt

Проверьте, что теперь вывод включает строки как с заглавным, так и со строчным "grep".

  1. Поиск с флагом -n (вывод номеров строк): Найдите слово "строка" с выводом номера строки:
grep -n "строка" grep_practice.txt

Задание

Вам предстоит разработать bash-скрипт, который использует команду grep для поиска и проверки информации о пользователе в нескольких файлах данных.

Bash-скрипт: Принимает три аргумента:

  1. key: Ключевое слово, определяющее тип данных для поиска ("Почта", "Телефон", "Имя").
  2. value: Значение, которое нужно найти в файле (email, номер телефона или имя).
  3. id: ID пользователя для проверки. находит файл с указанным словом , что ищем (почта|телефон|имя)(ключевое слово передаем в параметр первым

В зависимости от key, скрипт должен выполнить поиск значения в соответствующем файле (mail.txt, phone.txt, nickname.txt).
В найденном файле определяем, присутствует ли то, что пользователь хочет найти (т.е значение value)

  • Если нашёл, то сравниваем id (переданый третьим параметром и тот, который указан в файле):

    • если указан верный, то выводим сообщение(“Вы зарегистрированы, ваш id действительно {id}”)
    • если не совпадает, то выводим сообщение(“Вы зарегистрированы, но ваш id - {id}”)
  • Если не нашёл, то скрипт должен вывести: (Вы не зарегистрированы”)

Дополнительные материалы

  1. https://habr.com/ru/companies/itsumma/articles/492932/
  2. https://ru.hexlet.io/courses/cli-basics/lessons/grep/theory_unit
  3. https://metanit.com/os/linux/3.3.php

Выполнение лабораторной работы

  1. Для начала я создаем файлы с данными:

    • mail.txt

      image image
    • number.txt:

      image image
    • nickname.txt

      image image
  2. Пишем bash-скрипт:

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

    image image image image image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published