SEARCH

Введите поисковый запрос в поле выше ^, или воспользуйтесь поиском по форуму.

#1 2025-01-09 11:13

cOR
Администратор
Зарегистрирован: 2023-08-29
Сообщений: 85
Сайт

Как найти все файлы, содержащие искомый текст на linux?

Вопрос:

Хотелось бы найти способ поиска всех файлов, которые содержат заданный текст. Именно текст внутри файлов, а не в названиях.

Решение:
grep -rnw '/путь/к/папке/с/файлами' -e "шаблон"
  • -r или -R - рекурсивный поиск.

  • -n - вывод номера строки.

  • -w - только целые слова.

  • -l (нижний регистр от L) - вывод имени файла, где было совпадение.

Эффективности добавят следующие флаги:
    --exclude - Шаблон для исключения файлов, например: поиск везде, кроме файлов с расширением .o:

grep --exclude=*.o -rnw '/путь/к/папке/с/файлами' -e "шаблон"

    --include - Поиск только в определённых файлах, например: только в файлах с расширениями .h и .c:

grep --include=\*.{c,h} -rnw '/путь/к/папке/с/файлами' -e "шаблон"

    --exclude-dir и --include-dir - то же, только для выборки директорий, например: исключить папки один, two и любые, начинающиеся на а:

grep --exclude-dir={один,two,а*} -rnw '/путь/к/папке/с/файлами' -e "шаблон"

Это отлично работает для подобных целей, остальные настройки для grep можно узнать, выполнив man grep.


Думай дважды, кодь однажды. (c) cOR

Offline

Copyright © 2023 TDM ltd.
Created by cOR.

TDM Logo