项目文件类型的统计信息

项目文件类型的统计信息

我了解到有一个命令cloc可以计算代码行数。现在我想知道文件类型是否准确?我应该查看项目cloc以了解如何检测文件类型吗?我想知道的原因是,如果我没有弄错的话,当我将文件类型与tree|ls *.py没有输出进行比较时, cloc 似乎有误报,即使cloc报告当前目录中的 python 文件。

答案1

如果您想检查树中的文件数量.py以将其与 找到的数量进行比较cloc,我建议类似

find . -type f -name \*.py -printf '1' | wc -c

反而。

答案2

您可以增加详细程度并获取已识别文件的列表,例如对于 Python:

cloc -v=3 . | grep 'call_counter(.* Python)'

示例输出:

-> call_counter(./data/action_i18n_strings.py, Python)
-> call_counter(./files/usr/share/nemo/actions/myaction.py, Python)

然后通过读取文件来手动验证它们。

对于每个匹配的文件调用call_counter一次。


1.64 之前的版本仅通过检查扩展名来识别 Python 脚本.py。从版本 1.64 开始,clocPython 也可以通过 shebang 来识别:

添加了 python、python2.6、python2.7、python3、python3.3、python3.4 作为脚本可执行文件,以识别不以 .py 结尾的 Python 文件。

至于最新开发。版本它寻找这些环境:

%{$rh_Language_by_Script}    = (             # {{{1
            'awk'      => 'awk'                   ,
            'bash'     => 'Bourne Again Shell'    ,
            'bc'       => 'bc'                    ,# calculator
            'crystal'  => 'Crystal'               ,
            'csh'      => 'C Shell'               ,
            'dmd'      => 'D'                     ,
            'dtrace'   => 'dtrace'                ,
            'idl'      => 'IDL'                   ,
            'kermit'   => 'Kermit'                ,
            'ksh'      => 'Korn Shell'            ,
            'lua'      => 'Lua'                   ,
            'make'     => 'make'                  ,
            'octave'   => 'Octave'                ,
            'perl5'    => 'Perl'                  ,
            'perl6'    => 'Perl'                  ,
            'perl'     => 'Perl'                  ,
            'miniperl' => 'Perl'                  ,
            'php'      => 'PHP'                   ,
            'php5'     => 'PHP'                   ,
            'python'   => 'Python'                ,
            'python2.6'=> 'Python'                ,
            'python2.7'=> 'Python'                ,
            'python3'  => 'Python'                ,
            'python3.3'=> 'Python'                ,
            'python3.4'=> 'Python'                ,
            'python3.5'=> 'Python'                ,
            'rexx'     => 'Rexx'                  ,
            'regina'   => 'Rexx'                  ,
            'ruby'     => 'Ruby'                  ,
            'sed'      => 'sed'                   ,
            'sh'       => 'Bourne Shell'          ,
            'swipl'    => 'Prolog'                ,
            'tcl'      => 'Tcl/Tk'                ,
            'tclsh'    => 'Tcl/Tk'                ,
            'tcsh'     => 'C Shell'               ,
            'wish'     => 'Tcl/Tk'                ,
            'zsh'      => 'zsh'                   ,
            );
# 1}}}

相关内容