Как найти определенную строку или слово в файлах и каталогах
Если вы хотите найти все файлы, которые содержат определенное слово или строку текста во всей вашей системе Linux или в заданном каталоге. В этой статье вы узнаете, как это сделать, вы узнаете, как рекурсивно копаться в каталогах, чтобы найти и перечислить все файлы, которые содержат данную строку текста.
Простой способ сделать это — использовать инструмент поиска по шаблону grep, это мощная, эффективная, надежная и самая популярная утилита командной строки для поиска шаблонов и слов из файлов или каталогов в Unix-подобных системах.
Команда ниже выведет список всех файлов, содержащих строку с текстом «check_root», путем рекурсивного и агрессивного поиска в ~/bin каталоге.
$ grep -Rw ~/bin/ -e 'check_root'
Где -R опция говорит grep читать все файлы в каждом каталоге, рекурсивно, следуя символическим ссылкам, только если они находятся в командной строке, а опция -w указывает ему выбирать только те строки, содержащие совпадения, которые образуют целые слова, и -e используется для указания строки (шаблона) для поиска.
Вы должны использовать команду sudo при поиске определенных каталогов или файлов, для которых требуются права доступа root (если вы не управляете своей системой с учетной записью root).
Чтобы игнорировать различия регистра, используйте -i параметр, как показано ниже:
$ grep -Riw ~/bin/ -e 'check_root'
Если вы хотите узнать точную строку, в которой находится строка текста, включите эту -n опцию.
$ grep -Rinw ~/bin/ -e 'check_root'
Предполагая, что в каталоге есть несколько типов файлов, в которых вы хотите выполнить поиск, вы также можете указать тип файлов для поиска, например, по их расширению, используя —include опцию.
В этом примере команда grep просматривает только все .sh файлы.
$ grep -Rnw --include=\*.sh ~/bin/ -e 'check_root'
Кроме того, можно выполнить поиск более одного шаблона, используя следующую команду.
$ grep -Rinw ~/bin/ -e 'check_root' -e 'netstat'
Если вам известен какой-либо другой прием командной строки для поиска строки или слова в файлах, поделитесь с нами или задайте любые вопросы по этой теме, воспользуйтесь формой комментариев ниже.