Как получить список исходных файлов, которые включают другой исходный файл

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».

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

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *