cloc
コード行数を数えるコマンドがあることがわかりました。さて、ファイル形式が正しいかどうかを知りたいです。cloc
ファイルの種類を検出する方法については、プロジェクトを調べる必要がありますか?私が疑問に思う理由は、私が間違っていない限り、clocが現在のディレクトリにあるPythonファイルを報告しても、出力のtree|ls *.py
ないファイル形式を比較するときに偽の肯定があるようです。cloc
答え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)
その後、ファイルを読んで手動で確認してください。
一致するファイルごとに1回呼び出されますcall_counter
。
1.64より前のバージョン拡張子を確認してのみPythonスクリプトを識別します.py
。バージョン1.64以降、cloc
Pythonはshebangを介しても識別できます。
.pyで終わらないPythonファイルを認識するために、python、python2.6、python2.7、python3、python3.3、python3.4をスクリプト実行可能ファイルとして追加しました。
については最新の開発。バージョン次の環境を探します。
%{$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}}}