计算文件中'#define'的数量

时间:2011-12-29 12:54:51

标签: qt loops line c-preprocessor

好吧,我之前已经询问过如何检查文件中的每个#include。有人可以给我一个例子来检查从文件开头到结尾有多少#define个?

我一直在尝试但没有成功。

1 个答案:

答案 0 :(得分:0)

在Linux / UNIX上:

egrep -c "\#include|\#define" <filename>

这将为您提供文件中两种模式的出现次数。如果你想要它分开:

grep -c \#include <filename>

给出#include s

的计数
grep -c \#define <filename>

给出#define s

的计数
grep \#include <filename>

给出了#include s

的所有行
grep \#define <filename>

给出了#defines s

的所有行

如果你想在Perl中变得花哨和精致:

$include_count = 0;
$define_count = 0;
open SOURCE, $filename || die $!;
while(<SOURCE>)
{
     next if( !~ /include/ && !~ /define/ );
     $line = $_;
     $orig_line = $line;
     $line =~ s/^\s+//g;
     next if( $line !~ /^# );
     if( $line =~ /include/ ) 
     {
         $include_count++;
         print "$orig_line";
     }
     if( $line =~ /define/ )
     {
         $define_count++;
         print "$orig_line";
     }
}
print "Define count $define_count . Include Count: $include_count\n";

这是一个快速而又脏的脚本,因此您可以将解决方案基于此解决方案,或者使用Python / C / C ++或您认为合适的任何其他语言编写解决方案。