1

В Linux я хочу искать слово во всех файлах в каталоге (также в подпапках), и поиск должен быть чувствительным к регистру. Поиск должен дать мне все имена файлов, имена каталогов и номера строк, содержащие это слово.

Следующее будет делать поиск, как я хочу? Не могли бы вы объяснить флаги и аргументы здесь?

find . -type f | xargs grep -in WORD

2 ответа2

2
find . -type f -exec grep -Hn WORD {} ";" 
  • xargs - почти всегда плохая комбинация с find, потому что find имеет много exec-параметров (-exec, -execdir, -ok, -okdir) для выполнения команд над файлами, без необходимости маскировать пробелы или проблемные символы, такие как * и?,
  • -я нечувствительна
  • -n напечатать номер строки
  • -H печатает имя файла в grep
1

GNU grep имеет рекурсивную опцию:

grep -Hn something -r .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .