Как найти определенную строку или слово в файлах и каталогах

Если вы хотите найти все файлы, которые содержат определенное слово или строку текста во всей вашей системе 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'

Если вам известен какой-либо другой прием командной строки для поиска строки или слова в файлах, поделитесь с нами или задайте любые вопросы по этой теме, воспользуйтесь формой комментариев ниже.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *