Мой лучший способ на данный момент (для поиска строк в каталоге, содержащем большую программу на C)
find ~/example_directory -type f \( -name "*.mk" -or -name "*.[sch]" \) -print0 | xargs -0 -e grep "example_string"
, который работает довольно хорошо, но опирается на все интересные вещи, присутствующие в make-файлах .mk, исходные файлы .c или .h и файлы ассемблера .s.
Я думал о добавлении таких вещей, как «все файлы, называемые Makefile» или «все * .py python-скрипты», но оказывается, что этобыло бы намного проще, если бы был какой-то способ сказать find только для поиска текстовых файлов.
Если вы просто запустите grep для всех файлов, это займет много времени, и вы получите множество неинтересных обращений к объектным файлам.