Как найти конкретную строку в файле.c, используя perl api (Scitools) Understand?
Я пытаюсь проанализировать кодовую базу (много файлов.c), написав скрипт на Perl с использованием (Scitools) Understand Perl API.
Мне известно, что список переменных, функций и т. Д. Легко получить для данного файла.c.
Возможно, кто-то, кто работал с Understand Perl API, мог указать мне правильное направление для поиска конкретной строки, которая присутствует во многих строках файла? а можно вернуть номер строки?
1 ответ
Похоже, вы просто хотите
use Understand qw( );
my $db = Understand::open("test.udb");
# Find all 'File' entities that match test*.cpp
for my $file_ent ($db->lookup("test*.cpp","File")) {
my $file_contents = $file_ent->contents();
printf "File %s matches", $file_ent->name
if $file_contents =~ /pattern/;
}