find . -type f \( -name '*.c' -o -name '*.cpp' -o -name '*.cc' -o -name '*.cxx' \) | xargs grep "#include.*\.c.*" 2>&1 | tee source_inside_source_list.txt
Команда «find . -type f \( -name ‘*.c’ -o -name ‘*.cpp’ -o -name ‘*.cc’ -o -name ‘*.cxx’ \)» используется для поиска файлов с определенными расширениями (.c, .cpp, .cc, .cxx) в текущем каталоге и всех его подкаталогах.
Команда «xargs grep «#include.*\.c.*» 2>&1″ выполняет поиск строк, содержащих паттерн «#include.*\.c.*» (где .c — это расширение исходного файла) в найденных файлах. Результаты поиска выводятся в стандартный вывод (stdout).
Команда «tee source_inside_source_list.txt» сохраняет вывод и на экране, и в файле «source_inside_source_list.txt».
В итоге, данная команда выводит список файлов, которые включают другие исходные файлы. Альтернативный вариант можно реализовать с помощью скрипта на языке программирования, который проходил бы через каждый файл и проверял бы включение других файлов.
