Итак, ты решил покопаться в Linux и найти что-то в файлах. Поздравляю, тебе повезло — есть grep. Это не магия и не крутая фича из учебника, это инструмент, который реально экономит время. Давай сразу по делу.

Grep — это как детектор лжи для файлов. Хочешь знать, где в сотне файлов встречается слово «ошибка»? Готово, он тебе покажет. И не надо открывать каждый файл, листать сотни строк и материться.

Синтаксис

Глупо, но важно:

grep [опции] шаблон [файлы] 
  • опции — всякая ерунда, которая реально облегчает жизнь: -i (регистр не важен), -r (все папки и подпапки), -n (показывает номер строки, если любишь видеть детали).
  • шаблон — что ищем. Слово, часть строки, регулярка, хочешь — всю ерунду, которая в голову придет.
  • файлы — где копать. Один файл или десятки — без разницы.

Поиск в одном файле

Представь, что у тебя есть файл file.txt и тебе надо найти все строки с «hello».

grep hello file.txt

Просто, быстро, без лишних движений.

Несколько файлов

Если не один файл, а два или больше — через пробел:

grep hello file1.txt file2.txt

Не надо открывать каждый файл. Не смотри на меня так, знаю, что раньше ты так делал.

Игнорирование регистра

Иногда «Hello» и «hello» — это одно и то же. Добавляешь -i, и проблем нет:

grep -i hello file.txt 

Теперь не важно, с большой буквы или маленькой, grep найдет все.

Рекурсивный поиск

Хочешь рыться в папке со всеми подпапками? Пара ключей и grep сделает всю работу за тебя:

grep -r hello mydir

Да, он пройдет по каждой папке и файлу. Не жалей ресурсов — лучше найти сразу, чем потом материться, что что-то пропустил.

Отображение номеров строк

Когда ищешь баги, иногда нужно знать не только саму строку, но и где она находится. Опция -n — твой друг:

grep -n hello file.txt

Сразу видишь, что искать, не листая весь файл.

Полезные комбинации

Искать игнорируя регистр и с номерами строк:

grep -in hello file.txt

Искать во всех подпапках и выводить номера:

grep -rn hello mydir

Добавить фильтр исключений или сложные регулярки — тут уж включается твой мозг, а не учебник.

Итог

Grep — не какой-то магический Linux-фичер, это твой ежедневный инструмент, если ты работаешь с файлами. Понимаешь синтаксис — экономишь кучу времени и нервов. Не знаешь — будешь сидеть и листать каждый файл вручную, матерясь.