Используйте grep для поиска строки в файлах, включите подпапки - PullRequest
0 голосов
/ 21 июня 2010

Мне нужно найти определенный текст в файлах, и для этого я использую команду grep, но она ищет только в текущей папке. Я хочу, чтобы с помощью одной команды grep я также могла искать конкретную вещь в текущей папке. как во всех его подпапках. Как я могу это сделать ???

Ответы [ 3 ]

1 голос
/ 21 июня 2010

POSIX grep не поддерживает рекурсивный поиск - GNU-версия grep поддерживает.

find . -type f -exec grep 'pattern' {} \;

будет работать на любой POSIX-совместимой UNIX.

1 голос
/ 21 июня 2010

man grep говорит

   -R, -r, --recursive
          Read all  files  under  each  directory,  recursively;  this  is
          equivalent to the -d recurse option.
0 голосов
/ 05 апреля 2011

И еще более распространенным является использование find с xargs, скажем

 find <dir> -type f -name <shellglob> -print0 | xargs grep -0 

, где -print0 и -0, соответственно, будут использовать нулевой символ для разделения записей, чтобы избежать проблем с именами файлов, имеющими пробелы.

...