Tree

項目文件類型的統計資訊

  • May 4, 2017

我了解到有一個命令cloc可以計算程式碼行數。現在我想知道文件類型是否準確?我應該查看cloc項目以了解如何檢測文件類型嗎?我想知道的原因是,如果我在將文件類型與tree|ls *.py沒有輸出進行比較時沒有記錯的話, cloc 似乎有誤報,即使cloc報告目前目錄中的 python 文件也是如此。

如果您想檢查.py樹中的文件數以將其與找到的數字進行比較cloc,我建議您使用類似

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

反而。

您可以增加詳細程度並獲取已辨識文件的列表,例如對於 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 版開始cloc,也通過 shebang 辨識 Python:

添加了 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}}}

引用自:https://unix.stackexchange.com/questions/360321