В прошлом уроке grep искал слово точь-в-точь. Но «Анна» с большой буквы и «анна» с маленькой — для него это разные слова. Чтобы менять поведение команды, существуют флаги.
Что такое флаги
Флаг — это маленькая добавка к команде, которая начинается с дефиса и меняет то, как команда работает. У grep есть несколько очень полезных флагов.
-i — игнорировать регистр
Флаг -i (от ignore case) говорит grep не различать большие и маленькие буквы:
grep -i анна users.txt
Теперь команда найдёт и Анна, и анна, и даже АННА. Без флага она нашла бы только точное совпадение.
-n — показать номера строк
Флаг -n (от number) добавляет перед каждой найденной строкой её номер в файле:
grep -n анна users.txt
Вывод будет выглядеть примерно так: 2:анна. Это удобно, когда нужно быстро найти нужное место в большом файле.
-v — найти строки БЕЗ слова
Флаг -v переворачивает логику: он покажет все строки, в которых слова нет:
grep -v ошибка log.txt
Так можно, например, убрать из лога все ошибки и посмотреть только «нормальные» строки.
Флаги можно объединять. Например, grep -in анна users.txt сразу и игнорирует регистр, и показывает номера строк. Порядок букв после дефиса не важен.
Попробуй
Найди в файле users.txt все варианты имени «анна» без учёта регистра. Используй команду grep -i анна users.txt. Когда в выводе появится «Анна», урок зачтётся.