これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド cloc です。
プログラム:
NAME
cloc - ソース コードとコメントの行をカウントし、その差分を計算します。
SYNOPSIS
クロック[オプション] ...
DESCRIPTION
指定されたファイル内のソース コードの物理行を数えるか、その差分を計算します (
圧縮された tarball や zip ファイルなどのアーカイブ)、および/または指定されたディレクトリの下に再帰的に保存されます。
ディレクトリ。 標準のモジュールのみを使用し、完全に Perl で書かれています。
配布。
OPTIONS
入力 オプション
標準入力をカウントするには、特別なファイル名を使用します -.
--extract-with=CMD
このオプションは、cloc がコンテンツの抽出方法を理解できない場合にのみ必要です。
入力ファイル自体の。 CMD を使用してバイナリ アーカイブ ファイルを抽出します (例:
.tar.gz、.zip、.Z)。 実際のファイルの代わりにリテラル '>FILE<' を使用して、
抽出される。 たとえば、入力ファイル gcc-4.2.tar.gz 内のコードの行をカウントするには
Unix では perl-5.8.8.tar.gz を使用します。
--extract-with='gzip -dc >ファイル< | タールxf -
または、GNU tar がある場合:
--extract-with='tar zxf >ファイル<'
Windows では、たとえば次のように使用します。
--extract-with="\"c:\Program Files\WinZip\WinZip32.exe\" -e -o >ファイル
--list-file=ファイル
処理するファイル名やディレクトリ名のリストを、ファイル名が含まれる FILE から取得します。
XNUMX 行あたりのファイル/ディレクトリ名。 こちらも参照 --除外リストファイル
--ユニコード
バイナリ ファイルをチェックして、Unicode 拡張 ASCII テキストが含まれているかどうかを確認します。 これは〜をひき起こす
パフォーマンスが著しく低下すること。
処理 オプション
--autoconf
認識された言語の .in ファイル (GNU autoconf によって処理される) をカウントします。
--ファイルごと
検出されたすべてのソース ファイルの結果をレポートします。
-- ファイルごと、言語ごと
言語ごとのレポートに加えて、検出されたすべてのソース ファイルの結果をレポートします。
--差分 SET1 SET2
SET1 と SET2 のソース ファイル間のコードとコメントの差異を計算します。 の
入力は、ファイル、ディレクトリ、またはアーカイブのペアにすることができます。 使用 --diff-alignment 〜へ
どのファイル ペアが比較されたかを示すリストを生成します。 こちらも参照 --大文字と小文字を区別しない,
--無視-空白.
--差分タイムアウト N
処理に N 秒以上かかるファイルは無視します。 デフォルトは 10 秒です。
(繰り返し行が多い大きなファイルでは、 アルゴリズム::Diff::sdiff() 取る
時間。)
-- リンクをたどる
[Unix のみ] ディレクトリへのシンボリック リンクをたどります (ファイルへのシンボリック リンクは常に
続いて)。
--force-lang=LANG[,EXT]
EXT 拡張子を持つすべてのファイルを言語 LANG のカウンターで処理します。 ために
たとえば、Fortran 90 カウンターを使用してすべての .f ファイルをカウントします (ファイルが終了することが期待されます)。
.f90 を使用)、デフォルトの Fortran 77 カウンターの代わりに、以下を使用します。
--force-lang="Fortran 90",f
EXT を省略した場合、すべてのファイルが LANG カウンタでカウントされます。 このオプションでできることは、
複数回指定できます (ただし、これは毎回 EXT が指定される場合にのみ役立ちます)。 見る
また --script-lang, --lang-no-ext.
--force-lang-def=ファイル
ファイルから言語処理フィルターをロードし、これらのフィルターを
内蔵フィルター。 注: 同じファイル拡張子にマップされる言語 (例:
MATLAB/Objective C/MUMPS; パスカル/PHP; Lisp/OpenCL) は、必要なため無視されます。
言語定義ファイルで表現されていない追加の処理。 使用
--read-lang-def 組み込みフィルタを置き換えずに新しい言語フィルタを定義するには (「
また --write-lang-def).
--無視-空白
ファイルを比較するときに水平方向の空白を無視します。 --差分。 参照
--大文字と小文字を区別しない.
--大文字と小文字を区別しない
場合の変更は無視してください。 次の場合、大文字と小文字は同等であるとみなします。
ファイルを比較する --差分。 参照 --無視-空白.
--lang-no-ext=LANG
LANG カウンタを使用して拡張子のないファイルをカウントします。 このオプションは内部設定をオーバーライドします
拡張子のないファイルのロジック (そのようなファイルが既知のファイルと比較してチェックされる)
最初の行の「#!」を調べてスクリプト言語を調べます)。 こちらも参照 --force-lang,
--script-lang.
--最大ファイルサイズ=MB
ディレクトリを移動するときに、「MB」メガバイトを超えるファイルをスキップします。 デフォルトでは、
「MB」=100。 cloc のメモリ要件は最大のものの約 XNUMX 倍です
ファイルがあるため、100 GB 未満のコンピュータ上で 2 MB を超えるファイルを実行します。
メモリが問題を引き起こす可能性があります。 注: このチェックはファイルには明示的に適用されません。
コマンドライン引数として渡されます。
--read-binary-files
テキスト ファイルに加えてバイナリ ファイルも処理します。 これは通常悪い考えであり、そうすべきです
バイナリ データが埋め込まれたテキスト ファイルでのみ試行してください。
--read-lang-def=ファイル
新しい言語処理フィルターをファイルからロードし、既知のフィルターとマージします。
時計に。 FILE が cloc がすでに知っている言語を定義している場合、cloc の定義は
優先します。 使用 --force-lang-def cloc の定義をオーバーライドします。 (こちらも参照
--write-lang-def).
--script-lang=LANG,S
「S」を「#!」として呼び出すすべてのファイルを処理します。 カウンタを備えたスクリプト言語
言語 LANG。 たとえば、「#!/usr/local/bin/perl5.8.8」で始まるファイルは次のようになります。
を使用して Perl カウンターでカウントします
--script-lang=Perl、perl5.8.8
言語名は大文字と小文字が区別されませんが、実行可能なスクリプト言語の名前は、
「S」は大文字と小文字を正しく区別する必要があります。 このオプションは複数回指定できます。 こちらも参照
--force-lang.
--sdir=DIR
DIR をスクラッチ ディレクトリとして使用する代わりに、 File :: Temp 場所を選びました。
この場所に書き込まれたファイルは、実行の終了時に削除されません (
File :: Temp).
--スキップの一意性
ファイルの一意性チェックをスキップします。 これにより、パフォーマンスが向上しますが、
同一内容のファイルを複数回カウントします (そのような重複が存在する場合)。
--stdin-name=ファイル
経由でストリーミングされた行数をカウントします 標準入力 あたかも FILE という名前のファイルから来たかのように。
--strip-comments=EXT
処理されるファイルごとに、現在のディレクトリにファイルのバージョンを書き込みます。
空白行とコメントが削除されています。 ストリップされた各ファイルの名前はオリジナルです。
ファイル名に「.EXT」を付加したもの。 そうでない限り、現在のディレクトリに書き込まれます。
-- 元のディレクトリ オンです。
-- 元のディレクトリ
ストリップされたファイルを元のファイルと同じディレクトリに書き込みます。 にのみ効果があります
との組み合わせ --strip-コメント.
--合計レポート
入力引数は、以前に作成されたレポート ファイルです。 --レポートファイル オプションを選択します。
個人からのデータの合計を含む累積的な結果セットを作成します。
レポートファイル。
--unix
オペレーティング システムの検出ロジックをオーバーライドし、UNIX モードで実行します。 こちらも参照
- ウィンドウズ, --show-os.
- ウィンドウズ
オペレーティング システムの検出ロジックをオーバーライドし、Microsoft Windows モードで実行します。 見る
また --unix, --show-os.
フィルタ オプション
--exclude-dir=[、 ...]>
指定されたカンマ区切りのディレクトリをスキャンから除外します。 例えば:
--exclude-dir=.cache,test
パスの一部として「/.cache/」または「/test/」に一致するすべてのファイルをスキップします。
「.bzr」、「.cvs」、「.hg」、「.git」、「.hg」、および「.svn」という名前のディレクトリは常に
除外されました。
--exclude-ext=EXT1[,EXT2 ...]
指定されたファイル名拡張子を持つファイルはカウントされません。
--exclude-lang=[、 ...]>
指定されたカンマ区切りの言語をカウントから除外します。
--exclude-list-file=ファイル
FILE に名前が表示されるファイルは無視します。 FILE には XNUMX 行に XNUMX つのエントリが必要です。 相対的
パス名は、cloc が呼び出されたディレクトリから解決されます。 見る
また --リストファイル.
--match-d=正規表現
Perl 正規表現に一致するディレクトリ内のファイルのみをカウントします。 例えば
--match-d='/(src|include)/'
「/src/」または「/include/」を含むディレクトリ パス内のファイルのみをカウントします。
--not-match-d=正規表現
Perl 正規表現に一致するディレクトリを除くすべてのファイルをカウントします。
--match-f=正規表現
ベース名が Perl 正規表現に一致するファイルのみをカウントします。 たとえば、これだけが重要です
ウィジェットまたはウィジェットで始まるファイル:
--match-f='^[Ww]idget'
--not-match-f=正規表現
ベース名が Perl 正規表現に一致するファイルを除くすべてのファイルをカウントします。
--skip-archive=REGEX
指定された Perl 正規表現で終わるファイルを無視します。 たとえば、与えられた場合
--skip-archive='(zip|tar(\.(gz|Z|bz2|xz|7z))?)' このコードは、末尾のファイルをスキップします。
.zip、.tar、.tar.gz、.tar.Z、.tar.bz2、.tar.xz、および .tar.7z を使用します。
--スキップ-勝利-非表示
Windows では、隠しファイルを無視します。
デバッグ オプション
--categorized=ファイル
分類されたファイルの名前を FILE に保存します。
--counted=ファイル
処理したソースファイルの名前をFILEに保存します。
--diff-alignment=ファイル
どのファイルが追加、削除されたかを示すファイルおよびファイル ペアのリストを FILE に書き込みます。
および/または実行中に比較 --差分。 このスイッチは強制的に --差分 上のモード。
- 助けて
この使用法情報を印刷して終了します。
--found=ファイル
見つかったすべてのファイルの名前を FILE に保存します。
--ignored=ファイル
無視されたファイルの名前と無視された理由を FILE に保存します。
--print-filter-stages
に印刷 標準出力 各フィルターの適用前後に処理されたソース コード。
--show-ext[=EXT]
すべての既知の (または指定された) ファイル拡張子に関する情報を出力して終了します。
--show-lang[=LANG]
すべての既知の (または指定された) 言語に関する情報を出力して終了します。
--show-os
オペレーティング システム モードの値を出力して終了します。 こちらも参照 --unix, - ウィンドウズ.
-v[=]>
オプションの数値を使用して冗長をオンにします。
- バージョン
このプログラムのバージョンを出力して終了します。
--write-lang-def=ファイル
言語処理フィルターを FILE に書き込み、終了します。 最初のステップとして役立つ
カスタム言語定義の作成。 こちらも参照 --force-lang-def, --read-lang-def.
出力 オプション
- 3 第 XNUMX 世代言語の出力を印刷します。 (このオプションにより、レポートの合計が
一部のレポートがこのオプションを使用して作成され、他のレポートがこのオプションを使用せずに作成された場合は失敗します。
それ。)
--progress-rate=N
N ファイルが処理されるごとに進行状況の更新を表示します (デフォルト N=100)。 Nを0に設定すると、
進行状況の出力を抑制します。 出力をリダイレクトする場合に便利です 標準出力.
- 静かな
最終レポートを除くすべての情報メッセージを抑制します。
--レポートファイル=ファイル
結果を標準出力ではなくファイルに書き込みます。
--out=ファイル
の同義語 --レポートファイル=ファイル.
--csv
結果をカンマ区切りの値として書き込みます。
--csv-delimiter=C
カンマ区切りファイルの区切り文字として、, の代わりに文字 C を使用します。 これ
力を切り替える --csv オンになること。
--sql=ファイル
結果を SQL CREATE および INSERT ステートメントとして書き込み、データベースで読み取ることができます。
SQLiteなどのプログラム。 ファイルが -、出力はに送信されます 標準出力.
--sql-プロジェクト=名前
使用現在の実行のプロジェクト識別子として。 でのみ有効です --sql
オプションを選択します。
--sql-追加
SQL 挿入ステートメントを、によって指定されたファイルに追加します。 --sql テーブルを生成しません
作成オプション。
--サムワン
プレーン テキスト レポートの場合、入力ファイルが XNUMX つだけの場合でも、SUM: 出力行を表示します。
処理されました。
--xml
結果を XML で書き込みます。
--xsl[=ファイル]
XML 出力内の XSL スタイルシートとして FILE を参照します。 FILE が指定されていない場合、
デフォルトのスタイルシート cloc.xsl を書き込みます。 このスイッチにより強制的に --xml オンになること。
--yaml
結果を YAML で書き込みます。
例
UNIX ライクなオペレーティング環境で Perl 5.10.0 圧縮 tar ファイル内のコード行をカウントします。
システム:
cloc perl-5.10.0.tar.gz
Python リリース 2.6.6 と 2.7 の間でのファイル、コード、コメントの変更を数えます。
cloc --diff Python-2.6.6.tar.bz Python-2.7.tar.bz2
cloc が XNUMX つのコード ベース間で比較するためにファイルをどのように調整するかを確認するには、
--diff-alignment=ファイル オプション。 ここでは、位置合わせ情報が「align.txt」に書き込まれます。
cloc --diff-aligment=align.txt gcc-4.4.0.tar.bz2 gcc-4.5.0.tar.bz2
認識された言語を印刷する
cloc --show-lang
「foo.c」からコメントを削除し、結果を「foo.c.nc」に保存します。
cloc --strip-comments=nc foo.c
追加の例は次の場所にあります。http://cloc.sourceforge.net>.
ENVIRONMENT
なし。
onworks.net サービスを使用してオンラインで cloc を使用する