find . -type f -print0 | grep -vzZ '.svn' | xargs -0 grep --color -nEHi "SEARCHTERM"
find . -type f -print0 | grep -vzz ‘.svn’ | xargs -0 grep —color -nehi «searchterm»
Команда find используется для поиска файлов и каталогов в указанном расположении. В данном случае, она ищет все файлы в текущем каталоге и его подкаталогах.
Параметр -type f означает, что нужно искать только файлы (а не каталоги и символические ссылки).
Параметр -print0 указывает, что результаты поиска должны быть выведены в формате, который может быть использован другими командами, использующими нулевой символ для разделения файлов.
Команда grep -vzz ‘.svn’ используется для фильтрации результатов предыдущей команды, чтобы исключить файлы и папки, содержащие «.svn». Параметр -v означает «инвертировать результаты», -z означает «использовать нулевой символ в качестве разделителя», а ‘.svn’ — это шаблон, который будет определен в строке исключения.
Команда xargs -0 передает результаты фильтрации grep в качестве аргументов для следующей команды. Параметр -0 означает, что нулевой символ используется для разделения входных данных.
Команда grep —color -nehi «searchterm» выполняет поиск строки «searchterm» в каждом файле, переданном из предыдущей команды, и выводит совпадения с подсветкой в цвете. Параметры -n и -e используются для вывода номеров строк и поиска, соответственно, а параметр -i означает «игнорировать регистр».
Альтернативные способы достижения того же результата могут включать использование других утилит, таких как ack или ag, которые специализируются на поиске файлов или встречающихся строк.