Итак, ты решил покопаться в 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-фичер, это твой ежедневный инструмент, если ты работаешь с файлами. Понимаешь синтаксис — экономишь кучу времени и нервов. Не знаешь — будешь сидеть и листать каждый файл вручную, матерясь.
0 комментариев