dnf
— менеджер пакетов для Fedora. ОС, отличные от Fedora, будут иметь собственный менеджер пакетов.
У Ubuntu apt-get
, у redhat rpm
. В Arch Linux есть pacman
и так далее.
Исходный файл C трудно анализировать, как и другие файлы со структурированными данными. Лучше использовать парсер, который знает о синтаксисе языка, чем пытаться справиться с ним самостоятельно.
Предположим, у вас установлены Exuberant Ctags какectags
:
find top-dir -type f -name '*.[ch]' -exec ectags -x --c-kinds=f {} ';' >table
Это найдет все файлы .c
и .h
в или под top-dir
и создаст файл table
. Содержимое table
будет выглядеть примерно так (, где top-dir
будет .
в этом примере )
GetTimeSeed function 373./src/bayes.c void GetTimeSeed (void)
InitializeMrBayes function 443./src/bayes.c int InitializeMrBayes (void)
PrintHeader function 821./src/bayes.c void PrintHeader (void)
ReinitializeMrBayes function 838./src/bayes.c int ReinitializeMrBayes (void)
main function 101./src/bayes.c int main (int argc, char *argv[])
readline_completion function 359./src/bayes.c char **readline_completion (const char *text, int start, int stop)
(и др.)
Этот выходной формат должен быть легко проанализирован, например, с помощью. awk
, чтобы получить именно тот формат, который вам нужен.